使用HashiCorp Vault PKI和Cert Manager進行集中式TLS證書管理


擁抱零信任安全的HTTPS

在零信任安全的時代,HTTPS已成為保護網路流量的必要條件。它確保用戶與網站之間傳輸的數據被加密並被認證,防止監聽和中間人攻擊。

理解公鑰基礎建設 (PKI)

PKI是一個管理數字證書和公鑰加密的架構,使得網路上的通訊更安全。它包含創建、分發和管理數字證書的過程,這些證書用於驗證實體的身份以及加密資料。

傳統PKI管理的挑戰

手動管理PKI可能很繁瑣且容易出錯。該過程通常包括:

  1. 產生一對鍵和證書簽名請求 (CSR)。
  2. 提交支援請求以進行證書發行,這可能需要1到10天。
  3. 接收並配置返回的證書到服務。
  4. 定期旋轉證書以維護安全性。

這種手動方法不僅花費時間,而且增加了配置錯誤和安全違規的風險。

使用HashiCorp Vault簡化PKI

HashiCorp Vault通過自動化證書管理過程,為這些挑戰提供了解決方案。有了Vault的PKI Secret Engine,可以自動請求並更新證書,簡化了TLS證書的管理。

Vault PKI Secret Engine配置

要使用HashiCorp Vault PKI和Cert Manager設置集中式TLS證書管理,請按照以下步驟操作:

  1. 安裝PKI Secret Engine:在Vault中啟用PKI secret engine以開始發行證書。

    vault secrets enable pki
    
  2. 配置Root CA:設置一個根證書授權(CA)或一個中間CA來簽證書。

    vault write pki/root/generate/internal \
      common_name="example.com" \
      ttl=87600h
    
  3. 啟用Kubernetes身分驗證:配置Vault以驗證Kubernetes服務帳戶,允許Cert Manager與Vault互動。

    vault auth enable kubernetes
    
  4. 配置Cert Manager:在您的Kubernetes集群中設置Cert Manager,以自動請求並更新來自Vault的證書。

    apiVersion: cert-manager.io/v1
    kind: Issuer
    metadata:
      name: vault-issuer
    spec:
      vault:
        path: pki/sign/example-dot-com
        server: https://vault.example.com
        auth:
          kubernetes:
            role: cert-manager
            secretRef:
              name: vault-auth
              key: token
    

通過整合HashiCorp Vault PKI和Cert Manager,您可以實現TLS證書的自動和集中管理,減少手工作業並提高安全性。此配置確保您的服務始終使用最新的證書進行保護,符合零信任安全原則。