手動輪替憑證

選取說明文件版本:

根據預設,AlloyDB Omni Kubernetes 運算子會使用 cert-manager 為每個資料庫叢集佈建一組 TLS 憑證。除了資料庫伺服器憑證,運算子還會為控制層元件建立憑證,確保內部連線安全無虞。

雖然 cert-manager 會根據 Certificate 物件的 durationrenewBefore 欄位自動更新憑證,但在下列情況下,您可能需要手動觸發憑證輪替:

  • 私密金鑰遭到盜用。
  • CA 憑證已輪替。根據 cert-manager 文件,與核發者相關聯的 CA 憑證輪替時,系統不會自動重新核發葉子憑證。
  • cert-manager自動重新核發失敗。雖然自動重新核發功能很少會因 cert-manager 常見問題中所述的特定情況而無法觸發,但如果發生這種情況,您就必須手動觸發輪替。

事前準備

  • 請確認您已設定 kubectl,可存取 Kubernetes 叢集。
  • 確認 cert-manager 在 Kubernetes 叢集上執行。

手動輪替憑證

如要手動觸發憑證輪替,請刪除與 cert-manager Certificate 物件相關聯的密鑰。cert-manager 控制器會調解物件並重新核發憑證,進而建立新的密鑰。與 AlloyDB Omni 運算子相關聯的工作負載會自動重新載入 TLS 設定,以使用新憑證。

  1. 找出要旋轉的 cert-manager Certificate。這些物件位於 DBCluster 命名空間,以及安裝 AlloyDB Omni operator 的命名空間。CA 憑證名稱的前置字串為 dbs-al-ca,葉子憑證的前置字串則為 dbs-al-cert。在後續步驟中,請使用輸出內容中相關聯的密鑰名稱。

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. 觸發輪替前,請先備份憑證密鑰:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. 刪除憑證密鑰:

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. 等待 cert-manager 重新建立憑證密鑰:

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

驗證憑證輪替

手動輪替憑證後,請確認系統已使用新憑證:

  1. 檢查憑證密鑰。creationTimestamp 值必須反映您手動輪替憑證後的時間:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. 檢查 Certificate 狀態。確認狀態部分中的 notBeforenotAfter 日期是否正確:

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

後續步驟