Zertifikat widerrufen

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 zur Authentifizierung verwendet werden. Sie können ein Zertifikat widerrufen, wenn der private Schlüssel manipuliert 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 Personen 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 Zielgruppen für die GDC-Dokumentation für Air-Gap-Umgebungen.

Zertifikatssperrung

CA Service unterstützt den Zertifikatsperrung 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 als vertrauenswürdig gelten. Standardmäßig wird alle 15 Minuten eine neue CRL veröffentlicht. Außerdem wird bei jedem erfolgreichen Zertifikatsperren automatisch eine neue CRL generiert.

Zertifikate, die vom CA Service ausgestellt werden, 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 Zertifikatsperrliste abzurufen und zu prüfen, ob die Seriennummer eines Zertifikats vorhanden ist. Wenn die Seriennummer in der Liste aufgeführt ist, gilt das Zertifikat als ungültig und die Verbindung muss abgelehnt werden.

Hinweise

Bevor Sie ein Zertifikat widerrufen können, müssen Sie sicherstellen, dass Sie die erforderlichen Berechtigungen und eine kubeconfig-Datei haben.

Erforderliche Berechtigungen

Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „CA Service Operation Manager“ (certificate-authority-service-operation-manager) zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Widerrufen eines Zertifikats benötigen. Weitere Informationen zu Rollen finden Sie hier.

kubeconfig-Datei abrufen

So führen Sie Befehle für den Management API-Server aus:

  1. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.

  2. Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um MANAGEMENT_API_SERVER_KUBECONFIG in dieser Anleitung zu ersetzen.

Zertifikat widerrufen

Die Methode zum Sperren eines Zertifikats hängt davon ab, ob für die ausstellende Zertifizierungsstelle (Certificate Authority, CA) der ACME-Modus aktiviert ist. Nachdem Sie ein Zertifikat widerrufen haben, wird seine Seriennummer bis zum Ablauf des Zertifikats in allen zukünftigen Zertifikatssperrlisten für diese Zertifizierungsstelle angezeigt.

Zertifikat von einer ACME-fähigen Zertifizierungsstelle widerrufen

Jede ACME-fähige CA 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.

Zertifikat von einer ACME-fähigen CA widerrufen:

  1. 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 CA (Stamm- oder untergeordnete CA).
    • USER_PROJECT_NAMESPACE: Der Namespace des Projekts.
  2. Verwenden Sie die erhaltene URL mit dem ACME-Clienttool Ihrer Wahl, um einen Antrag auf Sperrung zu stellen. Weitere Informationen finden Sie in der Dokumentation Ihres ACME-Clients.

Zertifikat von einer CA ohne ACME-Unterstützung widerrufen

Wenn der ACME-Modus für die Zertifizierungsstelle deaktiviert ist, heben Sie ein Zertifikat auf, indem Sie eine benutzerdefinierte RevokeCertificateRequest-Ressource erstellen und anwenden:

  1. 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: REASON
    

    Ersetzen 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 der CertificateRequest-Ressource, die dem Zertifikat zugeordnet 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, PrivilegeWithdrawn und AaCompromise.
  2. Wenden Sie die benutzerdefinierte Ressource an:

    kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG
    

    Ersetzen Sie MANAGEMENT_API_SERVER_KUBECONFIG durch den Pfad zur kubeconfig-Datei des Management API-Servers.

  3. Prüfen Sie, ob die Anfrage zum Widerrufen des Zertifikats 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 der 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

Alle RevokeCertificateRequest-Ressourcen in einem Projekt-Namespace auflisten:

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