Zertifikat mit Public CA und einem ACME-Client anfordern

In dieser Anleitung wird beschrieben, wie Sie mit der Google Cloud CLI ein TLS-Zertifikat von der Public Certificate Authority anfordern. Informationen zu den von der Public Certificate Authority verwendeten Stamm- und Zwischenzertifizierungsstellen finden Sie unter Google Trust Services. Für das Anfordern von Zertifikaten von Public CA fallen keine Gebühren an. ACME-Vorgänge unterliegen jedoch den Anfragekontingenten von Public CA.

Hinweis

  • Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:

    gcloud init

  • Erstellen oder wählen Sie ein Google Cloud -Projekt aus.

    Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts

    • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
    • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Project Creator“ (roles/resourcemanager.projectCreator), die die Berechtigung resourcemanager.projects.create enthält. Informationen zum Zuweisen von Rollen
    • Erstellen Sie ein Projekt in Google Cloud :

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

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

  • Sie benötigen die IAM-Rolle „Public CA External Account Key Creator“ (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 Projekts in Google Cloud
    • USER: die eindeutige Kennung 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, falls sie noch nicht aktiviert ist:

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    gcloud services enable publicca.googleapis.com

Client installieren

Wenn Sie die 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 dieser die externe Kontobindung (External Account Binding, EAB) unterstützt.

Informationen zur Installation von Certbot finden Sie in der Certbot-Anleitung.

Achten Sie darauf, dass Ihr Client auf den Public CA-Server verweist. Wenn der ACME-Client zum ersten Mal mit der Public CA interagiert, generiert der Client ein neues Schlüsselpaar und sendet den öffentlichen Schlüssel an die Public 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 Public CA anzufordern. Mit einem EAB-Secret können Sie Ihr ACME-Konto bei Public CA 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 einen 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 7 Tagen nach Erhalt verwenden. Das EAB-Secret wird ungültig, wenn Sie es nicht innerhalb von 7 Tagen verwenden. Das mit einem EAB-Secret registrierte ACME-Konto läuft nicht ab.

ACME-Konto registrieren

In diesem Abschnitt wird erläutert, wie Sie ein ACME-Konto bei 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 Public CA zu registrieren und das ACME-Konto an das Projekt Google Cloud zu binden, das Sie zum Anfordern des EAB-Secrets verwendet 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

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

Umgebung Beschreibung URL des ACME-Verzeichnisses
Produktion In der Produktionsumgebung können Sie öffentlich vertrauenswürdige Zertifikate erhalten. https://dv.acme-v02.api.pki.goog/directory
Staging Die Staging-Umgebung gibt Zertifikate zurück, 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 Public CA Ihre Kontrolle über das Zertifikatsziel validiert und bestätigt hat, dass Ihr ACME-Client wie erwartet funktioniert, um Zertifikatsverwaltungsvorgänge auszuführen, können Sie die regulären ACME-Workflows 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-Aufgabe ausführen, z. B. die manuelle DNS-Aufgabe.

Wenn Sie CAA-DNS-Einträge (Certification Authority Authorization) verwenden, um zu steuern, welche Zertifizierungsstellen Zertifikate für Ihre Domain ausstellen können, müssen Sie pki.goog als autorisierten Aussteller angeben, z. B. 0 issue "pki.goog". Public CA unterstützt auch CAA-Eintragserweiterungen für Konto-URI und ACME-Methodenbindung, wie in RFC 8657 definiert. Damit können Sie die Zertifikatsausstellung mit dem Parameter accounturi auf ein bestimmtes ACME-Konto und mit dem Parameter validationmethods auf bestimmte Validierungsmethoden beschränken.

Führen Sie den folgenden Befehl aus, um ein Zertifikat mit der manuellen DNS-Anforderung 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 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 von der Staging-Umgebung ausgestellten Zertifikate sind mit einer Test-Root-CA verknüpft. Zertifikate aus der Staging-Umgebung werden von Browsern oder anderen Clients, die nicht für das Vertrauen in das Staging-Root-Zertifikat konfiguriert wurden, 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
Führen Sie den folgenden Befehl aus, um zum Endpunkt für die Produktionsumgebung zurückzukehren:
gcloud config unset api_endpoint_overrides/publicca

Google Cloud -Projekt löschen:

gcloud projects delete PROJECT_ID

Nächste Schritte