Zertifikat mit einer Public CA und einem ACME-Client anfordern

In dieser Anleitung wird beschrieben, wie Sie mit der Google Cloud CLI ein TLS-Zertifikat bei einer Public Certificate Authority anfordern. Informationen zu den von Public Certificate Authority verwendeten Stamm- und Zwischen-CAs finden Sie unter Google Trust Services. Für das Anfordern von Zertifikaten von einer öffentlichen Zertifizierungsstelle fallen keine Kosten an.

Hinweise

  • After installing the Google Cloud CLI, initialize it by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  • Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  • Sie benötigen die IAM-Rolle „Ersteller von externen Kontoschlüsseln für öffentliche Zertifizierungsstellen“ (roles/publicca.externalAccountKeyCreator).

    Führen Sie den folgenden Befehl aus, um diese Rolle zuzuweisen:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:USER \
      --role=roles/publicca.externalAccountKeyCreator
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Google Cloud Projekts
    • USER: die eindeutige ID des Nutzers, dem Sie die IAM-Rolle zuweisen möchten

    Informationen zum Zuweisen einer IAM-Rolle finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

  • Enable the Public CA API:

    gcloud services enable publicca.googleapis.com

Client installieren

Wenn Sie Public CA verwenden möchten, müssen Sie einen ACME-Client installieren. In der folgenden Anleitung wird Certbot als ACME-Client verwendet. Sie können jeden anderen ACME-Client verwenden, sofern er die externe Kontobindung (EAB) unterstützt.

Eine Anleitung zur Installation von Certbot finden Sie in der Certbot-Dokumentation.

Achten Sie darauf, dass Ihr Client auf den Public CA-Server verweist. Wenn der ACME-Client zum ersten Mal mit Public CA interagiert, generiert er ein neues Schlüsselpaar und sendet den öffentlichen Schlüssel an die öffentliche CA.

EAB-Schlüssel-ID und HMAC anfordern

Nachdem Sie einen ACME-Client installiert haben, müssen Sie Ihr ACME-Konto bei der Public CA registrieren, um Zertifikate von der öffentlichen Zertifizierungsstelle anzufordern. Mit einem EAB-Geheimnis können Sie Ihr ACME-Konto bei einer öffentlichen Zertifizierungsstelle registrieren. Ein EAB-Secret besteht aus einer Schlüssel-ID und einem Hash-basierten Message Authentication Code (HMAC).

Sie können ein EAB-Secret mit der Public CA API oder der Google Cloud CLI anfordern.

Führen Sie den folgenden Befehl aus, um eine EAB-Schlüssel-ID und einen HMAC anzufordern:

gcloud publicca external-account-keys create

Dieser Befehl gibt ein EAB-Secret zurück, das in der Produktionsumgebung der öffentlichen CA gültig ist. Im Antworttext enthält das Feld keyId die EAB-Schlüssel-ID und das Feld b64MacKey den EAB-HMAC.

Sie müssen ein EAB-Secret innerhalb von 7 Tagen nach Erhalt verwenden. Das EAB-Secret wird ungültig, wenn Sie es nicht innerhalb von 7 Tagen verwenden. Das ACME-Konto, das mit einem EAB-Secret registriert wurde, hat kein Ablaufdatum.

ACME-Konto registrieren

In diesem Abschnitt wird erläutert, wie Sie ein ACME-Konto bei einer Public CA registrieren, indem Sie das EAB-Secret angeben, das Sie gerade erhalten haben.

Verwenden Sie einen regulären ACME-Client, um ein ACME-Konto zu registrieren, und geben Sie bei der Registrierung die EAB-Schlüssel-ID und den HMAC an.

Führen Sie den folgenden Befehl aus, um ein ACME-Konto bei einer Public CA zu registrieren und das ACME-Konto an das Google Cloud -Projekt zu binden, mit dem Sie das EAB-Secret angefordert haben:

certbot register \
    --email "EMAIL_ADDRESS" \
    --no-eff-email \
    --server "SERVER" \
    --eab-kid "EAB_KID" \
    --eab-hmac-key "EAB_HMAC_KEY"

Ersetzen Sie Folgendes:

  • EMAIL_ADDRESS: Ihre E-Mail-Adresse.
  • SERVER: die ACME-Verzeichnis-URL für die Produktions- oder Stagingumgebung
  • EAB_KID: die EAB-Schlüssel-ID
  • EAB_HMAC_KEY: der EAB-HMAC-Schlüssel

In der folgenden Tabelle finden Sie die Beschreibung und die ACME-Verzeichnis-URL für die Produktions- und Staging-Umgebung:

Umgebung Beschreibung ACME-Verzeichnis-URL
Produktion In der Produktionsumgebung können Sie öffentlich vertrauenswürdige Zertifikate abrufen. https://dv.acme-v02.api.pki.goog/directory
Staging In der Staging-Umgebung werden Zertifikate zurückgegeben, die nicht öffentlich vertrauenswürdig sind. In der Staging-Umgebung werden dieselben Validierungsprüfungen wie in der Produktionsumgebung durchgeführt. Sie können die Staging-Umgebung für Integrationstests oder andere Arten von Tests verwenden. https://dv.acme-v02.test-api.pki.goog/directory

Sie können nur ein ACME-Konto mit einem EAB-Secret registrieren. Nachdem Sie ein ACME-Konto mit einem EAB-Secret registriert haben, wird das EAB-Secret ungültig und kann nicht wiederverwendet werden. Wenn Sie mehrere ACME-Konten registrieren möchten, müssen Sie für jedes Konto ein eindeutiges EAB-Secret anfordern.

Zertifikate anfordern

Nachdem die öffentliche Zertifizierungsstelle bestätigt hat, dass Sie die Kontrolle über das Zertifikatziel haben und Ihr ACME-Client wie erwartet funktioniert, um Zertifikatsverwaltungsoperationen auszuführen, können Sie die regulären ACME-Arbeitsabläufe verwenden, um Zertifikate anzufordern, zu verlängern und zu widerrufen. Sie können diese Vorgänge mit Ihrem ACME-Client ausführen. Wenn Sie ein Zertifikat anfordern und verlängern möchten, müssen Sie eine ACME-Herausforderung wie die manuelle DNS-Herausforderung bestehen.

Wenn Sie die manuelle DNS-Herausforderung verwenden möchten, um ein Zertifikat anzufordern, führen Sie den folgenden Befehl aus:

certbot certonly \
    --manual \
    --preferred-challenges "dns-01" \
    --server "SERVER" \
    --domains "DOMAINS"

Ersetzen Sie Folgendes:

  • SERVER: Die ACME-Verzeichnis-URL für die Produktions- oder Stagingumgebung
  • DOMAINS: eine durch Kommas getrennte Liste von Domains, für die Sie Zertifikate anfordern

Bereinigen

Wenn Sie keine Zertifikate mehr für Ihre Domains benötigen, löschen Sie das von Ihnen erstellte Projekt.

Staging

Sie können die Staging-Umgebung der Public CA verwenden, um Zertifikate zu Testzwecken anzufordern. Die vom Staging-System ausgestellten Zertifikate werden bis zu einer Test-Root-CA verkettet. Zertifikate aus der Staging-Umgebung werden von Browsern oder anderen Clients, die nicht so konfiguriert wurden, dass sie dem Staging-Root-Zertifikat vertrauen, nicht als vertrauenswürdig eingestuft. Wenn Sie ein EAB-Secret erhalten möchten, das in der Staging-Umgebung gültig ist, überschreiben Sie den API-Endpunkt, um den Endpunkt für die Staging-Umgebung zu verwenden:

gcloud config set api_endpoint_overrides/publicca https://preprod-publicca.googleapis.com/
Führen Sie dann den Befehl zum Erstellen des Kontoschlüssels aus, um einen Staging-Schlüssel zu erstellen:
gcloud publicca external-account-keys create
Wenn Sie zum Endpunkt für die Produktionsumgebung zurückkehren möchten, führen Sie den folgenden Befehl aus:
gcloud config unset api_endpoint_overrides/publicca

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

Nächste Schritte