In diesem Dokument wird beschrieben, wie Sie ein Zertifikat mit dem Certificate Authority Service widerrufen. Durch den Widerruf eines Zertifikats wird es vor seinem Ablaufdatum ungültig und kann nicht mehr für die Authentifizierung verwendet werden. Sie können ein Zertifikat widerrufen, wenn der private Schlüssel kompromittiert wurde, das Zertifikat durch ein neues Zertifikat ersetzt wird oder das Zertifikat nicht mehr benötigt wird (z. B. wenn der Dienst, für den das Zertifikat ausgestellt wurde, eingestellt wird).
Dieses Dokument richtet sich an Zielgruppen in der Gruppe der Anwendungsoperatoren, z. B. Anwendungsentwickler oder Data Scientists, die den Lebenszyklus von Zertifikaten in ihrem Projekt verwalten. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.
Zertifikatswiderruf
Der CA Service unterstützt den Zertifikatswiderruf durch die Veröffentlichung von Zertifikatssperrlisten (Certificate Revocation Lists, CRLs). Eine CRL ist eine Liste mit Seriennummern von Zertifikaten, die widerrufen wurden und nicht mehr vertrauenswürdig sind. Standardmäßig wird alle 15 Minuten eine neue CRL veröffentlicht. Außerdem löst jeder erfolgreiche Zertifikatswiderruf automatisch die Generierung einer neuen CRL aus.
Zertifikate, die vom CA Service ausgestellt wurden, enthalten eine Erweiterung namens CRL Distribution Point (CDP). Diese Erweiterung enthält die URL, unter der Sie die CRL für dieses Zertifikat finden und herunterladen können. Clientanwendungen verwenden diese URL, um die CRL abzurufen und zu prüfen, ob die Seriennummer eines Zertifikats vorhanden ist. Wenn die Seriennummer in der Liste enthalten ist, gilt das Zertifikat als ungültig und die Verbindung muss abgelehnt werden.
Hinweis
Bevor Sie ein Zertifikat widerrufen können, müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten.
IAM-Rollen anfordern
Wenn Sie Zertifikate widerrufen und Widerrufsanfragen ansehen möchten, bitten Sie Ihren IAM-Administrator der Organisation, die Rolle CA Service Operation Manager (certificate-authority-service-operation-manager) im Projekt-Namespace der Zertifizierungsstelle anzufordern.
Umgebung vorbereiten
Laden Sie die gdcloud CLI herunter und installieren Sie sie, falls noch nicht geschehen.
Generieren Sie eine kubeconfig-Datei um den
kubectlZugriff zu konfigurieren.
Zertifikat widerrufen
Die Methode zum Widerrufen eines Zertifikats hängt davon ab, ob der ACME-Modus für die ausstellende Zertifizierungsstelle aktiviert ist. Nachdem Sie ein Zertifikat widerrufen haben, wird seine Seriennummer in allen zukünftigen CRLs für diese Zertifizierungsstelle angezeigt, bis das Zertifikat abläuft.
Zertifikat von einer ACME-fähigen Zertifizierungsstelle widerrufen
Jede ACME-fähige Zertifizierungsstelle stellt in ihrem Status eine eindeutige ACME-Server-URL bereit, sobald sie bereit ist. Wenn Sie ein Zertifikat von einer ACME-fähigen Zertifizierungsstelle widerrufen möchten, müssen Sie ein ACME-Clienttool verwenden, um über das ACME-Protokoll mit dieser URL zu interagieren.
So widerrufen Sie ein Zertifikat von einer ACME-fähigen Zertifizierungsstelle:
Rufen Sie die ACME-Server-URL für Ihre Zertifizierungsstelle ab:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get certificateauthorities CA_NAME \ -n USER_PROJECT_NAMESPACE \ -ojson | jq -r '.status.acme.uri'Ersetzen Sie Folgendes:
MANAGEMENT_API_SERVER_KUBECONFIG: Der Pfad zur kubeconfig-Datei des Management API-Servers.CA_NAME: Der Name der ACME-fähigen Zertifizierungsstelle (Stamm- oder untergeordnete Zertifizierungsstelle).USER_PROJECT_NAMESPACE: Der Namespace des Projekts.
Verwenden Sie die abgerufene URL mit dem ACME-Clienttool Ihrer Wahl, um eine Widerrufsanfrage zu senden. Weitere Informationen finden Sie in der Dokumentation für Ihren spezifischen ACME-Client.
Zertifikat von einer ACME-deaktivierten Zertifizierungsstelle widerrufen
Wenn der ACME-Modus für die Zertifizierungsstelle deaktiviert ist, widerrufen Sie ein Zertifikat, indem Sie eine benutzerdefinierte RevokeCertificateRequest-Ressource erstellen und anwenden:
Erstellen Sie eine YAML-Datei für die benutzerdefinierte Ressource
RevokeCertificateRequest(z. B.revoke-cert-request.yaml):apiVersion: pki.security.gdc.goog/v1 kind: RevokeCertificateRequest metadata: name: REVOKE_CERT_REQ_NAME namespace: USER_PROJECT_NAMESPACE spec: certificateRequestRef: name: CERT_REQ_NAME namespace: USER_PROJECT_NAMESPACE reason: REASONErsetzen Sie Folgendes:
REVOKE_CERT_REQ_NAME: Der benutzerdefinierte Name für die Widerrufsanfrage.USER_PROJECT_NAMESPACE: Der Namespace des Projekts.CERT_REQ_NAME: Der Name derCertificateRequest-Ressource, die mit dem Zertifikat verknüpft ist, das Sie widerrufen möchten.REASON: Der Grund für den Widerruf. Gültige Gründe sind:Unspecified,KeyCompromise,CaCompromise,AffiliationChanged,Superseded,CessationOfOperation,CertificateHold,RemoveFromCrl,PrivilegeWithdrawnundAaCompromise.
Wenden Sie die benutzerdefinierte Ressource an:
kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGErsetzen Sie MANAGEMENT_API_SERVER_KUBECONFIG durch den Pfad zur kubeconfig-Datei des Management API-Servers.
Prüfen Sie, ob die Widerrufsanfrage für das Zertifikat bereit ist:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n USER_PROJECT_NAMESPACE \ get revokecertificaterequest.pki.security.gdc.goog/REVOKE_CERT_REQ_NAME \ -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))'Ersetzen Sie Folgendes:
MANAGEMENT_API_SERVER_KUBECONFIG: Der Pfad zur kubeconfig-Datei des Management API-Servers.USER_PROJECT_NAMESPACE: Der Namespace des Projekts.REVOKE_CERT_REQ_NAME: Der Name für die Widerrufsanfrage.
Die Ausgabe sieht dann ungefähr so aus:
{ "lastTransitionTime": "2025-08-19T23:20:22Z", "message": "RevokeCertificateRequest reconciled", "observedGeneration": 1, "reason": "Ready", "status": "True", "type": "Ready" }Der Vorgang ist abgeschlossen und die Seriennummer des Zertifikats wird der nächsten generierten CRL hinzugefügt.
Widerrufene Zertifikatsanfragen auflisten
Listen Sie alle RevokeCertificateRequest-Ressourcen in einem Projekt-Namespace auf:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
-n USER_PROJECT_NAMESPACE \
get revokecertificaterequests
Ersetzen Sie Folgendes:
MANAGEMENT_API_SERVER_KUBECONFIG: Der Pfad zur kubeconfig-Datei des Management API-Servers.USER_PROJECT_NAMESPACE: Der Namespace des Projekts.
Die Ausgabe sieht dann ungefähr so aus:
NAMESPACE NAME READY AGE
foo revoke-cert-req True 30s