In dieser Anleitung wird der Prozess der Zertifikatsbereitstellung anhand eines von Google verwalteten Zertifikats mit DNS-Autorisierung veranschaulicht.
Die folgenden Load Balancer unterstützen von Google verwaltete Zertifikate mit DNS-Autorisierung:
- Globaler externer Application Load Balancer
- Klassischer Application Load Balancer
- Regionsübergreifender interner Application Load Balancer
- Globaler externer Proxy-Network Load Balancer
Einen Vergleich der unterstützten Typen der Domainautorisierung finden Sie unter Domainautorisierung. Autorisierungen.
Wenn Sie ein vorhandenes Zertifikat zum Zertifikatmanager migrieren möchten, führen Sie die Schritte unter Zertifikate migrieren zu Zertifikatmanager.
Lernziele
In diesem Anleitung werden die folgenden Aufgaben erläutert:
- Erstellen Sie mit Certificate Manager ein von einer öffentlich vertrauenswürdigen Zertifizierungsstelle ausgestelltes von Google verwaltetes Zertifikat mit DNS-Autorisierung.
- Bereitstellen des Zertifikats auf einem unterstützten Load Balancer mit einem HTTPS-Zielproxy
Weitere Informationen zur Zertifizierungsbereitstellung finden Sie unter Bereitstellungsübersicht.
Hinweise
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Für die Bereitstellung des Zertifikats ist die gcloud CLI-Version
465.0.0
oder höher erforderlich. Führen Sie den folgenden Befehl aus, um die Version der gcloud CLI zu prüfen: folgenden Befehl:gcloud --version
Führen Sie folgenden Befehl aus, um die gcloud CLI zu aktualisieren.
gcloud components update
Sie benötigen die folgenden Rollen, um die Aufgaben in dieser Anleitung ausführen zu können:
- Zertifikatmanager-Inhaber: Erforderlich zum Erstellen und Verwalten von Zertifikatmanager-Ressourcen.
- Administrator für Compute-Load-Balancer oder Compute-Netzwerkadministrator:Erforderlich für HTTPS-Zielproxy erstellen und verwalten.
- DNS-Administrator: Erforderlich, wenn Sie Cloud DNS als DNS-Lösung verwenden möchten.
Hier finden Sie weitere Informationen:
- Rollen und Berechtigungen für Zertifikatmanager
- Compute Engine-IAM-Rollen und -Berechtigungen für Compute Engine
- Zugriffssteuerung mit IAM für Cloud DNS
Von Google verwaltetes Zertifikat mit DNS-Autorisierung erstellen
Führen Sie die Schritte in diesem Abschnitt aus, um eine DNS-Autorisierung und eine Von Google verwaltetes Zertifikat, das auf diese DNS-Autorisierung verweist
DNS-Autorisierung erstellen
Erstellen Sie die DNS-Autorisierung wie in diesem Abschnitt beschrieben. Wenn Sie eine
DNS-Autorisierung für ein Platzhalterzertifikat wie *.myorg.example.com
,
die DNS-Autorisierung für die übergeordnete Domain konfigurieren, z. B.
myorg.example.com
.
gcloud
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Um die projektspezifische DNS-Autorisierung zu verwenden, führen Sie den folgenden Befehl aus:
gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" \ --type="PER_PROJECT_RECORD" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME
Ersetzen Sie Folgendes:
AUTHORIZATION_NAME
: der Name der DNS-Autorisierung.DOMAIN_NAME
: der Name der Domain, für die Sie diese DNS-Autorisierung erstellen. Der Domainname muss ein voll qualifizierter Domainname sein, z. B.myorg.example.com
.
Die Ausgabe des Befehls sieht in etwa so aus. Verwenden Sie den CNAME-Eintrag aus der Ausgabe, um ihn Ihrer DNS-Konfiguration hinzuzufügen.
createTime: '2022-01-14T13:35:00.258409106Z' dnsResourceRecord: data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. name: _acme-challenge.myorg.example.com. type: CNAME domain: myorg.example.com name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization updateTime: '2022-01-14T13:35:01.571086137Z'
Terraform
Zum Erstellen einer DNS-Autorisierung können Sie eine google_certificate_manager_dns_authorization
-Ressource verwenden.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
CNAME-Eintrag zu DNS-Konfiguration hinzufügen
Wenn Sie Google Cloud zum Verwalten Ihres DNS verwenden, führen Sie die Schritte in diesem Abschnitt aus. Sehen Sie andernfalls in der Dokumentation Ihres Drittanbieter-DNS nach. Lösung.
Bevor Sie die Schritte in diesem Abschnitt ausführen, stellen Sie sicher, dass Sie ein öffentliche DNS-Zone.
Wenn Sie eine DNS-Autorisierung erstellen, gibt der gcloud CLI-Befehl Folgendes zurück: den entsprechenden CNAME-Eintrag. Sie müssen diesen CNAME-Eintrag folgendermaßen Ihrer DNS-Konfiguration in der DNS-Zone der Zieldomain hinzufügen:
gcloud
- Starten Sie die Transaktion des DNS-Eintrags:
gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
Ersetzen Sie DNS_ZONE_NAME
durch den Namen des Ziel-DNS.
.
- Fügen Sie den CNAME-Eintrag zur Ziel-DNS-Zone hinzu:
gcloud dns record-sets transaction add CNAME_RECORD \ --name="_acme-challenge.DOMAIN_NAME." \ --ttl="30" \ --type="CNAME" \ --zone="DNS_ZONE_NAME"
Ersetzen Sie Folgendes:
CNAME_RECORD
: vollständiger Datenwert des CNAME-Eintrags der vom Google Cloud CLI-Befehl zurückgegeben wird, mit dem das entsprechende DNS erstellt wurde Autorisierung.DOMAIN_NAME
: der Name der Zieldomain. Die muss ein vollständig qualifizierter Domainname sein, z. B.myorg.example.com
Sie dürfen den Punkt am Ende nach dem Zieldomainnamen nicht weglassen.DNS_ZONE_NAME
: der Name der DNS-Zielzone.
Sehen Sie sich folgendes Beispiel an:
gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \ --name="_acme-challenge.myorg.example.com." \ --ttl="30" \ --type="CNAME" \ --zone="myorg-example-com"
- Führen Sie die DNS-Eintragstransaktion aus, um die Änderungen zu speichern:
gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
Ersetzen Sie DNS_ZONE_NAME
durch den Namen der Ziel-DNS-Zone.
Terraform
Zum Hinzufügen des CNAME-Eintrags zu Ihrer DNS-Konfiguration können Sie einen
google_dns_record_set
-Ressource
Ein von Google verwaltetes Zertifikat erstellen, das auf die DNS-Autorisierung verweist
Um ein von Google verwaltetes Zertifikat zu erstellen, das auf die DNS-Autorisierung verweist, die in den vorherigen Schritten erstellt wurden, gehen Sie so vor:
Console
Rufen Sie in der Google Cloud Console die Seite Zertifikatmanager auf.
Wählen Sie auf der angezeigten Seite den Tab Zertifikate aus.
Klicken Sie auf Zertifikat hinzufügen.
Geben Sie einen Namen für das Zertifikat ein.
Dieser Name muss für das Projekt eindeutig sein.
Optional: Geben Sie die Beschreibung für das Zertifikat ein. Die Beschreibung können Sie später ein bestimmtes Zertifikat identifizieren.
Wählen Sie für Standort die Option Global aus.
Wählen Sie für Umfang eine der folgenden Optionen aus:
- Standard: Wählen Sie die Standardeinstellung für den globalen externen Application Load Balancer, einen klassischen Application Load Balancer oder einen globalen externen Proxy-Network Load Balancer aus.
- Alle Regionen: Wählen Sie „Alle Regionen“ für einen regionenübergreifenden internen Application Load Balancer aus.
Wählen Sie als Zertifikattyp die Option Von Google verwaltetes Zertifikat erstellen aus.
Wählen Sie für Zertifizierungsstellentyp die Option Öffentlich aus.
Geben Sie die Domainnamen des Zertifikats an. Geben Sie eine durch Kommas getrennte Liste der Zieldomains ein. Außerdem muss jeder Domainname ein voll qualifizierter Domainname, z. B.
myorg.example.com
.Wählen Sie unter Autorisierungstyp die Option DNS-Autorisierung aus. Wenn der Parameter Domainname mit einer DNS-Autorisierung verknüpft ist, wird er automatisch abgerufen. Wenn dem Domainnamen keine DNS-Autorisierung zugeordnet ist, gehen Sie so vor:
- Klicken Sie auf Fehlende DNS-Autorisierung erstellen, um das Dialogfeld „DNS-Autorisierung erstellen“ aufzurufen.
- Geben Sie im Feld Name der DNS-Autorisierung den Namen der DNS-Autorisierung an.
- Klicken Sie auf DNS-Autorisierung erstellen. Prüfen Sie, ob der DNS-Name mit dem Domainnamen verknüpft wird.
Geben Sie ein Label an, das mit dem Zertifikat verknüpft werden soll. Sie können mehrere Labels hinzufügen. Um ein Label hinzuzufügen, klicken Sie auf das add_box Label hinzufügen und legen Sie
key
undvalue
für das Label fest.Klicken Sie auf Erstellen. Prüfen Sie, ob das neue Zertifikat in der Liste der Zertifikate angezeigt wird.
gcloud
Für einen globalen externen Application Load Balancer, einen klassischen Application Load Balancer oder einen globalen externen Proxy-Network Load Balancer:
Führen Sie dazu diesen Befehl aus:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains=DOMAIN_NAME \ --dns-authorizations=AUTHORIZATION_NAME
Ersetzen Sie Folgendes:
CERTIFICATE_NAME
: Ein eindeutiger Name des Zertifikats.DOMAIN_NAME
: die Zieldomain des Zertifikats. Der Domainname muss ein voll qualifizierter Domainname sein, z. B.myorg.example.com
.AUTHORIZATION_NAME
: der Name der DNS-Autorisierung, die Sie für dieses Zertifikat erstellt haben.
Um ein von Google verwaltetes Zertifikat mit einem Platzhalter-Domainnamen zu erstellen, verwenden Sie die Methode folgenden Befehl. Ein Wildcard-Domainname deckt alle Subdomains der ersten Ebene einer bestimmten Domain ab.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME
Ersetzen Sie Folgendes:
CERTIFICATE_NAME
: Ein eindeutiger Name des Zertifikats.DOMAIN_NAME
: die Zieldomain des Zertifikats. Das Präfix „Sternchen Punkt“ (*.
) steht für ein Platzhalterzertifikat. Domain Name muss ein vollständig qualifizierter Domainname sein, z. B.myorg.example.com
.AUTHORIZATION_NAME
: der Name der DNS-Autorisierung die Sie für dieses Zertifikat erstellt haben.
Für einen regionsübergreifenden internen Application Load Balancer:
Führen Sie dazu diesen Befehl aus:
gcloud certificate-manager certificates create CERTIFICATE_NAME
--domains=DOMAIN_NAME
--dns-authorizations=AUTHORIZATION_NAME
--scope=all-regions
Ersetzen Sie Folgendes:
CERTIFICATE_NAME
: Ein eindeutiger Name des Zertifikats.DOMAIN_NAME
: die Zieldomain des Zertifikats. Der Domainname muss ein voll qualifizierter Domainname sein, z. B.myorg.example.com
.AUTHORIZATION_NAME
: der Name der DNS-Autorisierung, die Sie für dieses Zertifikat erstellt haben.
Verwenden Sie den folgenden Befehl, um ein von Google verwaltetes Zertifikat mit einem Platzhalter-Domainnamen zu erstellen. Ein Wildcard-Domainname deckt alle Subdomains der ersten Ebene einer bestimmten Domain ab.
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="*.DOMAIN_NAME,DOMAIN_NAME" \ --dns-authorizations=AUTHORIZATION_NAME \ --scope=all-regions
Ersetzen Sie Folgendes:
CERTIFICATE_NAME
: Ein eindeutiger Name des Zertifikats.DOMAIN_NAME
: die Zieldomain des Zertifikats. Die Sternchen-Punktpräfix (*.
) zeigt ein Platzhalterzertifikat an. Die muss ein vollständig qualifizierter Domainname sein, z. B.myorg.example.com
AUTHORIZATION_NAME
: der Name der DNS-Autorisierung die Sie für dieses Zertifikat erstellt haben.
Terraform
Verwenden Sie eine google_certificate_manager_certificate
-Ressource.
Prüfen, ob das Zertifikat aktiv ist
Prüfen Sie mit dem folgenden Befehl, ob das Zertifikat selbst aktiv ist, bevor Sie es auf dem Load-Balancer bereitstellen. Es kann mehrere Stunden dauern, bis sich der Zertifikatstatus in ACTIVE
ändert.
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Ersetzen Sie CERTIFICATE_NAME
durch den Namen des Ziels.
Von Google verwaltetes Zertifikat.
Die Ausgabe des Befehls sieht in etwa so aus:
expireTime: '2022-05-07T05:03:49Z' managed: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED dnsAuthorizations: - projects/my-project/locations/global/dnsAuthorizations/myAuth domains: - myorg.example.com state: ACTIVE name: projects/myProject/locations/global/certificates/myCert pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Zertifikat auf einem Load Balancer bereitstellen
In diesem Abschnitt werden die Schritte zum Bereitstellen des von Google verwalteten Zertifikats auf einem Load Balancer beschrieben.
Bevor Sie mit den Aufgaben in diesem Abschnitt fortfahren, vergewissern Sie sich, dass Sie die in der Tabelle aufgeführten Aufgaben Von Google verwaltetes Zertifikat mit DNS-Autorisierung erstellen .
Je nach Load-Balancer-Typ können Sie Zertifikate so bereitstellen:
- Stellen Sie das Zertifikat für die folgenden Load-Balancer mit einem
Zertifikatszuordnung:
- Globaler externer Application Load Balancer
- Globaler externer Proxy-Network Load Balancer
- Klassischer Application Load Balancer
- Für den regionenübergreifenden internen Application Load Balancer können Sie das Zertifikat bereitstellen, indem Sie es direkt an den Zielproxy anhängen.
Zertifikat mit einer Zertifikatszuordnung bereitstellen
In diesem Abschnitt wird beschrieben, wie Sie ein Zertifikat mit einer Zertifikatszuordnung bereitstellen.
Zertifikatzuordnung erstellen
Erstellen Sie eine Zertifikatszuordnung, die auf den Eintrag der Zertifikatszuordnung verweist, der mit Ihrem Zertifikat verknüpft ist:
gcloud
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Ersetzen Sie CERTIFICATE_MAP_NAME
durch den Namen des Ziels.
Zertifikatszuordnung.
Terraform
Zum Erstellen einer Zertifikatszuordnung können Sie eine
google_certificate_manager_certificate_map
-Ressource
Eintrag in der Zertifikatzuordnung erstellen
Zertifikatszuordnungseintrag erstellen und sie mit Ihren Zertifikat als sowie Ihre Zertifikatszuordnung:
gcloud
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
Ersetzen Sie Folgendes:
CERTIFICATE_MAP_ENTRY_NAME
: Ein eindeutiger Name für den ZertifikatszuordnungseintragCERTIFICATE_MAP_NAME
: der Name des Zertifikats, dem/der das Zertifikat zugeordnet ist an diesen Zertifikatzuordnungseintrag angehängt wirdCERTIFICATE_NAME
: der Name des gewünschten Zertifikats die mit diesem Zertifikatzuordnungseintrag verknüpft werden sollenHOSTNAME
: der Hostname, den Sie mit diesem Eintrag der Zertifikatszuordnung verknüpfen möchten.Wenn Sie Zertifikate mit einer Wildcard-Domain erstellen, geben Sie auch den Hostnamen mit einem Platzhalter an, z. B.
*.example.com
.
Terraform
Zum Erstellen eines Zertifikatszuordnungseintrags können Sie einen
google_certificate_manager_certificate_map_entry
-Ressource
Prüfen, ob der Zertifikatzuordnungseintrag aktiv ist
Prüfen Sie mit dem folgenden Befehl, ob der Eintrag der Zertifikatszuordnung aktiv ist, bevor Sie die entsprechende Zertifikatszuordnung an den Zielproxy anhängen:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Ersetzen Sie Folgendes:
CERTIFICATE_MAP_ENTRY_NAME
: der Name des ZielzertifikatszuordnungseintragsCERTIFICATE_MAP_NAME
: der Name der Zertifikatszuordnung, an die dieser Eintrag der Zertifikatszuordnung angehängt ist
Die Ausgabe des Befehls sieht in etwa so aus:
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
Zertifikatszuordnung an den Zielproxy anhängen
Hängen Sie die konfigurierte Zertifikatszuordnung an den Zielproxy an:
gcloud
Rufen Sie in der Google Cloud Console die Seite Zielproxys auf.
Notieren Sie sich den Namen des Zielproxys.
Hängen Sie die Zertifikatszuordnung an den Zielproxy an:
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Ersetzen Sie Folgendes:
PROXY_NAME
: der Name des Zielproxys.CERTIFICATE_MAP_NAME
: der Name der Zertifikatszuordnung, der auf den Eintrag der Zertifikatszuordnung und das zugehörige Zertifikat verweist.
Terraform
Zum Anhängen der Zertifikatszuordnung an den Zielproxy können Sie eine
google_compute_target_https_proxy
-Ressource
Wenn Sie beim Konfigurieren eines Zielproxys TLS (SSL)-Zertifikate direkt und auch über eine Zertifikatszuordnung anhängen, verwendet der Proxy die Zertifikate, auf die in der Zertifikatszuordnung verwiesen wird, und ignoriert die direkt angehängten TLS/SSL-Zertifikate.
Zertifikat direkt an den Zielproxy anhängen
Führen Sie den folgenden Befehl aus, um das Zertifikat direkt an den Proxy anzuhängen:
gcloud compute target-https-proxies update PROXY_NAME \ --url-map=URL_MAP \ --global \ --certificate-manager-certificates=CERTIFICATE_NAME
Ersetzen Sie Folgendes:
PROXY_NAME
: Ein eindeutiger Name des Proxys.URL_MAP
ist der Name der URL-Zuordnung. Sie haben die URL-Zuordnung beim Erstellen des Load Balancers erstellt.CERTIFICATE_NAME
: der Name des Zertifikats.
Bereinigen
Führen Sie die folgenden Schritte aus, um die Änderungen, die Sie in dieser Anleitung vorgenommen haben, rückgängig zu machen. Schritte:
Trennen Sie die Zertifikatszuordnung vom Proxy.
Beachten Sie Folgendes, bevor Sie die Zertifikatszuordnung trennen:
- Wenn TLS/SSL-Zertifikate direkt an den Proxy angehängt sind, Durch das Trennen der Zertifikatszuordnung kann der Proxy diese direkt angehängte TLS/SSL-Zertifikate.
- Wenn keine TLS-Zertifikate (SSL) direkt mit dem Proxy verknüpft waren, kann die Zertifikatszuordnung nicht vom Proxy getrennt werden. Sie müssen zuerst mindestens ein TLS/SSL-Zertifikat direkt an den Proxy anhängen, bevor können Sie die Zertifikatszuordnung trennen.
Führen Sie den folgenden Befehl aus, um die Zertifikatszuordnung zu trennen:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Ersetzen Sie
PROXY_NAME
durch den Namen des Zielproxies.Löschen Sie den Zertifikatszuordnungseintrag aus der Zertifikatszuordnung:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Ersetzen Sie Folgendes:
CERTIFICATE_MAP_ENTRY_NAME
: der Name des Zieleintrags der Zertifikatszuordnung.CERTIFICATE_MAP_NAME
: der Name der Zielzertifikatzuordnung.
Löschen Sie die Zertifikatszuordnung:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Ersetzen Sie
CERTIFICATE_MAP_NAME
durch den Namen des Ziels. Zertifikatszuordnung.Löschen Sie das von Google verwaltete Zertifikat:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Ersetzen Sie
CERTIFICATE_NAME
durch den Namen des Zielzertifikats.Löschen Sie die DNS-Autorisierung:
gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
Ersetzen Sie
AUTHORIZATION_NAME
durch den Namen der Ziel-DNS-Autorisierung.