Zertifikat mit Public CA und einem ACME-Client anfordern

In dieser Anleitung wird beschrieben, wie Sie über die 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. Das Anfordern von Zertifikaten von der öffentlichen Zertifizierungsstelle ist kostenlos.

Hinweise

  • Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

    gcloud init

  • Google Cloud-Projekt erstellen oder auswählen.

    • Erstellen Sie ein Google Cloud-Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud-Projekt, das Sie erstellen.

    • Wählen Sie das von Ihnen erstellte Google Cloud-Projekt aus:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch den Namen Ihres Google Cloud-Projekts.

  • Achten Sie darauf, dass Sie entweder die IAM-Rolle „Inhaber“ (roles/owner) oder die IAM-Rolle „Public CA External Account Key Creator“ (publicca.externalAccountKeyCreator) haben.

    Führen Sie den folgenden Befehl aus, um die IAM-Rolle „Public CA External Account Key Creator“ (publicca.externalAccountKeyCreator) zu gewähren:

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist 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.

  • Aktivieren Sie die 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 einen beliebigen anderen ACME-Client verwenden, wenn er die externe Kontobindung (EAB) unterstützt.

Eine Anleitung zur Installation von Certbot finden Sie hier.

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

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-Secret können Sie Ihr ACME-Konto bei der öffentlichen Zertifizierungsstelle registrieren. Ein EAB-Secret besteht aus einer Schlüssel-ID und einem Hash-basierten Message Authentication Code (HMAC).

Sie können die Public CA API oder die Google Cloud CLI verwenden, um ein EAB-Secret anzufordern.

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

gcloud publicca external-account-keys create

Dieser Befehl gibt ein EAB-Secret zurück, das in der Produktionsumgebung der Public 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 sieben Tagen nach Erhalt verwenden. Das EAB-Secret wird entwertet, wenn Sie es nicht innerhalb von sieben Tagen verwenden. Das mit einem EAB-Secret registrierte ACME-Konto 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 soeben abgerufene EAB-Secret angeben.

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 der 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 Staging-Umgebung
  • EAB_KID: die EAB-Schlüssel-ID
  • EAB_HMAC_KEY: der EAB-HMAC-Schlüssel

Die folgende Tabelle enthält die Beschreibung und die ACME-Verzeichnis-URL für die Produktions- und Staging-Umgebung:

Umgebung Beschreibung URL des ACME-Verzeichnisses
In der Produktionsumgebung können öffentlich vertrauenswürdige Zertifikate abgerufen werden. https://dv.acme-v02.api.pki.goog/directory
Staging wird ausgeführt… Die Staging-Umgebung gibt Zertifikate zurück, die nicht öffentlich vertrauenswürdig sind. In der Staging-Umgebung werden dieselben Validierungsprüfungen durchgeführt wie in der Produktionsumgebung. Sie können die Staging-Umgebung für die Integration oder andere 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 Ihre Kontrolle über das Zertifikatsziel validiert und bestätigt hat, dass Ihr ACME-Client wie erwartet zur Durchführung von Zertifikatsverwaltungsvorgängen funktioniert, können Sie Zertifikate über die regulären ACME-Workflows anfordern, verlängern und 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-Aufgabe durchführen, z. B. die manuelle DNS-Abfrage.

Führen Sie den folgenden Befehl aus, um über die manuelle DNS-Abfrage ein Zertifikat anzufordern:

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

Ersetzen Sie Folgendes:

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

Bereinigen

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

Staging wird ausgeführt…

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

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
Führen Sie den folgenden Befehl aus, um den Endpunkt für die Produktionsumgebung wiederherzustellen:
gcloud config unset api_endpoint_overrides/publicca

Google Cloud-Projekt löschen:

gcloud projects delete PROJECT_ID

Nächste Schritte