cert-manager 為每個資料庫叢集佈建一組 TLS 憑證。除了資料庫伺服器憑證,運算子還會為控制層元件建立憑證,確保內部連線安全無虞。
雖然 cert-manager 會根據 Certificate 物件的 duration 和 renewBefore 欄位自動更新憑證,但在下列情況下,您可能需要手動觸發憑證輪替:
- 私密金鑰遭到盜用。
- CA 憑證已輪替。根據
cert-manager文件,與核發者相關聯的 CA 憑證輪替時,系統不會自動重新核發葉子憑證。 cert-manager自動重新核發失敗。雖然自動重新核發功能很少會因 cert-manager 常見問題中所述的特定情況而無法觸發,但如果發生這種情況,您就必須手動觸發輪替。
事前準備
- 請確認您已設定
kubectl,可存取 Kubernetes 叢集。 - 確認
cert-manager在 Kubernetes 叢集上執行。
手動輪替憑證
如要手動觸發憑證輪替,請刪除與 cert-manager Certificate 物件相關聯的密鑰。cert-manager 控制器會調解物件並重新核發憑證,進而建立新的密鑰。與 AlloyDB Omni 運算子相關聯的工作負載會自動重新載入 TLS 設定,以使用新憑證。
找出要旋轉的
cert-managerCertificate。這些物件位於DBCluster命名空間,以及安裝 AlloyDB Omni operator 的命名空間。CA 憑證名稱的前置字串為dbs-al-ca,葉子憑證的前置字串則為dbs-al-cert。在後續步驟中,請使用輸出內容中相關聯的密鑰名稱。kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide觸發輪替前,請先備份憑證密鑰:
kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak刪除憑證密鑰:
kubectl delete secret SECRET_NAME -n NAMESPACE等待
cert-manager重新建立憑證密鑰:kubectl get secret SECRET_NAME -n NAMESPACE -w
驗證憑證輪替
手動輪替憑證後,請確認系統已使用新憑證:
檢查憑證密鑰。
creationTimestamp值必須反映您手動輪替憑證後的時間:kubectl get secret SECRET_NAME -n NAMESPACE -o yaml檢查
Certificate狀態。確認狀態部分中的notBefore和notAfter日期是否正確:kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
後續步驟
- 管理憑證。