Zertifikat mit Public CA und einem ACME-Client anfordern
In dieser Anleitung erfahren Sie, wie Sie mit der Google Cloud CLI ein TLS-Zertifikat bei der Public Certificate Authority (öffentliche Zertifizierungsstelle) anfordern. Informationen zu den Root- und Zwischen-CAs, die von der Public Certificate Authority verwendet werden, finden Sie unter Google Trust Services. Die Anforderung von Zertifikaten bei Public CA ist kostenlos.
Hinweis
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Erstellen oder wählen Sie ein Google Cloud Projekt aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- 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 „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Informationen zum Zuweisen von Rollen.
-
Projekt erstellen: Google Cloud
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das Google Cloud Projekt aus, das Sie erstellt haben:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
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 Google Cloud ProjektsUSER: 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:
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 Rolle „Inhaber“ (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 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 (External Account Binding, EAB) unterstützt.
Eine Anleitung zur Installation von Certbot finden Sie in der Certbot-Dokumentation.
Richten Sie Ihren Client auf den Public CA-Server aus. Wenn der ACME-Client zum ersten Mal mit Public CA interagiert, generiert er ein neues Schlüsselpaar und sendet den öffentlichen Schlüssel an Public CA.
EAB-Schlüssel-ID und HMAC anfordern
Nachdem Sie einen ACME-Client installiert haben, müssen Sie Ihr ACME-Konto bei Public CA registrieren, um Zertifikate von Public CA anzufordern. Mit einem EAB-Secret können Sie Ihr ACME-Konto bei der 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 dem Erhalt verwenden. Wenn Sie es nicht innerhalb von 7 Tagen verwenden, wird es ungültig. 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 der Public CA registrieren, indem Sie das gerade erhaltene EAB-Secret angeben.
Registrieren Sie ein ACME-Konto mit einem regulären ACME-Client 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 es mit dem Projekt zu verknüpfen, das Sie zum Anfordern des EAB-Secrets verwendet haben: Google Cloud
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-AdresseSERVER: die ACME-Verzeichnis-URL für die Produktions- oder Staging-UmgebungEAB_KID: die EAB-Schlüssel-IDEAB_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 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 Zertifikat-Ziel validiert und bestätigt hat, dass Ihr ACME-Client wie erwartet funktioniert, um Zertifikatsverwaltungsaufgaben auszuführen, können Sie die regulären ACME-Workflows verwenden, um Zertifikate anzufordern, zu erneuern und zu widerrufen. Sie können diese Vorgänge mit Ihrem ACME-Client ausführen. Um ein Zertifikat anzufordern und zu erneuern, müssen Sie eine ACME-Challenge abschließen, z. B. die manuelle DNS-Challenge.
Führen Sie den folgenden Befehl aus, um ein Zertifikat mit der manuellen DNS-Challenge 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-UmgebungDOMAINS: 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 erstellte Projekt.
Staging
Sie können die Staging-Umgebung von Public CA verwenden, um Zertifikate für Testzwecke anzufordern. Die von der Staging Umgebung ausgestellten Zertifikate werden mit einer Test-Root-CA verkettet. Zertifikate aus der Staging-Umgebung werden von Browsern oder anderen Clients nicht als vertrauenswürdig eingestuft, wenn sie nicht so konfiguriert wurden, dass sie dem Root-Zertifikat der Staging-Umgebung vertrauen. 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/
gcloud publicca external-account-keys create
gcloud config unset api_endpoint_overrides/publicca
Projekt löschen: Google Cloud
gcloud projects delete PROJECT_ID