Zertifikat mit einer öffentlichen Zertifizierungsstelle und einem ACME-Client anfordern
In dieser Anleitung erfahren Sie, wie Sie mit der Google Cloud CLI ein TLS-Zertifikat bei einer öffentlichen Zertifizierungsstelle anfordern. Informationen zu den Stamm- und Zwischen-CAs, die von der Public Certificate Authority verwendet werden, finden Sie unter Google Trust Services. Das Anfordern von Zertifikaten von Public CA ist kostenlos.
Hinweise
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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 „Inhaber“ (
roles/owner
) oder „Ersteller externer Kontoschlüssel für öffentliche Zertifizierungsstellen“ (publicca.externalAccountKeyCreator
).Führen Sie den folgenden Befehl aus, um der öffentlichen Zertifizierungsstelle die IAM-Rolle „Ersteller externer Kontoschlüssel“ (
publicca.externalAccountKeyCreator
) zuzuweisen: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-ProjektsUSER
: 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.
Enable the Public CA API:
gcloud services enable publicca.googleapis.com
Client installieren
Wenn Sie die öffentliche Zertifizierungsstelle 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 zum Installieren von Certbot finden Sie in der Certbot-Anleitung.
Richten Sie Ihren Client auf den Public CA-Server aus. Wenn der ACME-Client zum ersten Mal mit der öffentlichen Zertifizierungsstelle interagiert, generiert er 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 öffentlichen Zertifizierungsstelle registrieren, um Zertifikate von ihr anzufordern. Mit einem EAB-Geheimnis 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 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, läuft nicht ab.
ACME-Konto registrieren
In diesem Abschnitt wird beschrieben, wie Sie ein ACME-Konto bei der Public CA registrieren, indem Sie das gerade erhaltene EAB-Secret angeben.
Verwenden Sie einen regulären ACME-Client, um ein ACME-Konto zu registrieren, und geben Sie dabei die EAB-Schlüssel-ID und den HMAC an.
Wenn Sie ein ACME-Konto bei der Public CA registrieren und das ACME-Konto mit dem Google Cloud-Projekt verknüpfen möchten, mit dem Sie das EAB-Secret angefordert haben, führen Sie den folgenden Befehl aus:
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-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 abrufen. | 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 Validierungsüberprü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 Ihre Kontrolle über das Zertifikatsziel bestätigt 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 ein Zertifikat mit der manuellen DNS-Herausforderung anfordern möchten, 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 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 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-Stamm-CA verknüpft. 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, 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
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID