cert-manager, um eine Reihe von TLS-Zertifikaten für jeden Datenbankcluster bereitzustellen. Neben dem Datenbankserverzertifikat erstellt der Operator Zertifikate für Steuerungsebenenkomponenten, um interne Verbindungen zu sichern.
Während cert-manager Zertifikatsverlängerungen basierend auf den Feldern duration und renewBefore eines Certificate-Objekts automatisiert, müssen Sie in den folgenden Szenarien möglicherweise manuell eine Zertifikatsrotation auslösen:
- Ein privater Schlüssel wurde kompromittiert.
- Ein CA-Zertifikat wird rotiert. Gemäß der
cert-manager-Dokumentation werden die untergeordneten Zertifikate nicht automatisch neu ausgestellt, wenn ein CA-Zertifikat rotiert wird, das mit einem Aussteller verknüpft ist. - Die automatische Neuausstellung von
cert-managerschlägt fehl. Obwohl selten, müssen Sie eine manuelle Rotation auslösen, wenn die automatische Neuausstellung aufgrund bestimmter Bedingungen, die in den FAQs zu `cert-manager` beschrieben sind, nicht ausgelöst wird.
Hinweis
- Achten Sie darauf, dass
kubectlfür den Zugriff auf Ihren Kubernetes-Cluster konfiguriert ist. - Achten Sie darauf, dass
cert-managerin Ihrem Kubernetes-Cluster ausgeführt wird.
Manuelle Zertifikatsrotation
Wenn Sie die Zertifikatsrotation manuell auslösen möchten, löschen Sie das Secret, das mit dem cert-manager-Certificate-Objekt verknüpft ist. Der cert-manager-Controller gleicht das Objekt ab und stellt das Zertifikat neu aus, wodurch ein neues Secret erstellt wird. Mit dem AlloyDB Omni-Operator verknüpfte Arbeitslasten laden ihre TLS-Konfigurationen automatisch neu, um das neue Zertifikat zu verwenden.
Ermitteln Sie das
cert-manager-Certificate, das Sie rotieren möchten. Diese Objekte befinden sich imDBCluster-Namespace und im Namespace, in dem der AlloyDB Omni-Operator installiert ist. Die Namen von CA-Zertifikaten haben das Präfixdbs-al-ca, während untergeordnete Zertifikate das Präfixdbs-al-certhaben. Verwenden Sie in den verbleibenden Schritten den Namen des zugehörigen Secrets aus der Ausgabe.kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wideSichern Sie das Zertifikatssecret, bevor Sie die Rotation auslösen:
kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bakLöschen Sie das Zertifikatssecret:
kubectl delete secret SECRET_NAME -n NAMESPACEWarten Sie, bis
cert-managerdas Zertifikatssecret neu erstellt hat:kubectl get secret SECRET_NAME -n NAMESPACE -w
Zertifikatsrotation überprüfen
Nachdem Sie die Zertifikate manuell rotiert haben, prüfen Sie, ob die neuen Zertifikate verwendet werden:
Prüfen Sie das Zertifikatssecret. Der Wert
creationTimestampmuss die Zeit widerspiegeln, nachdem Sie das Zertifikat manuell rotiert haben:kubectl get secret SECRET_NAME -n NAMESPACE -o yamlPrüfen Sie den Status von
Certificate. Prüfen Sie, ob die DatennotBeforeundnotAfterim Statusbereich korrekt sind:kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE