In dieser Anleitung erfahren Sie, wie Sie mit dem Zertifikatmanager ein globales, von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung bereitstellen.
Mit der Load-Balancer-Autorisierung können Sie ein von Google verwaltetes Zertifikat für Ihre Domain erhalten, wenn der Traffic vom Load-Balancer bereitgestellt wird. Für diese Methode sind keine zusätzlichen DNS-Einträge für die Zertifikatsbereitstellung erforderlich.
Die folgenden Load Balancer unterstützen von Google verwaltete Zertifikate mit Load Balancer-Autorisierung:
- Globaler externer Application Load Balancer
- Klassischer Application Load Balancer
- Globaler externer Proxy-Network Load Balancer
- Klassischer Proxy-Network Load Balancer
Ziele
In diesem Anleitung werden die folgenden Aufgaben erläutert:
- Erstellen Sie mit dem Zertifikatmanager ein von Google verwaltetes Zertifikat, das von einer öffentlich vertrauenswürdigen Zertifizierungsstelle (Certificate Authority, CA) mit Load-Balancer-Autorisierung ausgestellt wurde.
- Stellen Sie das Zertifikat mithilfe eines Ziel-HTTPS-Proxys auf einem unterstützten Load Balancer bereit.
Wenn Sie ein Zertifikat in einer Produktionsdomain bereitstellen, wird der Traffic kurz unterbrochen, während das Zertifikat auf Ihrem Load Balancer eingerichtet und aktiviert wird.
Hinweis
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Erforderliche Rollen
Sie benötigen die folgenden Rollen, um die Aufgaben in dieser Anleitung auszuführen:
Zertifikatmanager-Inhaber (
roles/certificatemanager.owner)Erforderlich, um Zertifikatmanager-Ressourcen zu erstellen und zu verwalten.
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin) oder Compute Network Admin (roles/compute.networkAdmin)Erforderlich, um HTTPS-Ziel-Proxys zu erstellen und zu verwalten.
DNS-Administrator (
roles/dns.admin)Erforderlich, wenn Sie Cloud DNS als DNS-Lösung verwenden möchten.
Hier finden Sie weitere Informationen:
- Rollen und Berechtigungen für den Zertifikatmanager.
- Compute Engine-IAM-Rollen und -Berechtigungen für Compute Engine.
- Rollen und Berechtigungen für Cloud DNS.
Domainnamen
Rufen Sie zum Erstellen von Zertifikaten die voll qualifizierten Domainnamen (FQDNs) der Domains ab, die Sie besitzen. Wenn Sie keine Domain haben, können Sie mit Cloud Domains eine Domain registrieren.
Load Balancer erstellen
In dieser Anleitung wird davon ausgegangen, dass Sie die Backends, Systemdiagnosen, Backend-Dienste und URL-Zuordnungen des Load Balancers bereits erstellt und konfiguriert haben. Wenn Sie einen externen Application Load Balancer erstellt haben, notieren Sie sich den Namen der URL-Zuordnung, da Sie ihn später in dieser Anleitung benötigen.
Wenn Sie den Load Balancer noch nicht erstellt haben, finden Sie auf den folgenden Seiten Informationen dazu:
Informationen zum Erstellen eines globalen externen Application Load Balancers finden Sie unter Globalen externen Application Load Balancer mit VM-Instanzgruppen-Backends einrichten.
Informationen zum Erstellen eines klassischen Application Load Balancers finden Sie unter Klassischen Application Load Balancer mit einem Backend einer verwalteten Instanzgruppe einrichten.
Informationen zum Erstellen eines globalen externen Proxy-Network-Load-Balancers (SSL-Proxy) finden Sie unter Globalen externen Proxy-Network-Load-Balancer (SSL-Proxy) mit VM-Instanzgruppen-Backends einrichten.
Informationen zum Erstellen eines klassischen Proxy-Network-Load-Balancers (SSL-Proxy) finden Sie unter Klassischen Proxy-Network-Load-Balancer (SSL-Proxy) mit VM-Instanzgruppen-Back-Ends einrichten.
Von Google verwaltetes Zertifikat mit Load Balancer-Autorisierung erstellen
So erstellen Sie ein von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung:
Console
Rufen Sie in der Google Cloud Console die Seite Zertifikatmanager auf.
Klicken Sie auf dem Tab Zertifikate auf Zertifikat hinzufügen.
Geben Sie im Feld Zertifikatsname einen eindeutigen Namen für das Zertifikat ein.
Optional: Geben Sie im Feld Beschreibung eine Beschreibung für das Zertifikat ein. Anhand der Beschreibung können Sie das Zertifikat identifizieren.
Wählen Sie unter Standort die Option Global aus.
Wählen Sie für Bereich die Option Standard aus.
Wählen Sie für Zertifikatstyp die Option Von Google verwaltetes Zertifikat erstellen aus.
Wählen Sie für Typ der Zertifizierungsstelle die Option Öffentlich aus.
Geben Sie im Feld Domainnamen eine durch Kommas getrennte Liste der Domainnamen des Zertifikats an. Jeder Domainname muss ein voll qualifizierter Domainname sein, z. B.
myorg.example.com.Wählen Sie unter Autorisierungstyp die Option Load-Balancer-Autorisierung aus.
Geben Sie im Feld Labels die Labels an, die mit dem Zertifikat verknüpft werden sollen. Klicken Sie auf Label hinzufügen, um ein Label hinzuzufügen, und geben Sie einen Schlüssel und einen Wert für das Label an.
Klicken Sie auf Erstellen.
Das neue Zertifikat wird in der Liste der Zertifikate angezeigt.
gcloud
Verwenden Sie den Befehl certificate-manager certificates create, um ein globales, von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung zu erstellen:
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES"
Ersetzen Sie Folgendes:
CERTIFICATE_NAME: der Name des Zertifikats.DOMAIN_NAMES: eine durch Kommas getrennte Liste der Zieldomains. Jeder Domainname muss ein voll qualifizierter Domainname sein, z. B.myorg.example.com.
Terraform
Verwenden Sie eine google_certificate_manager_certificate-Ressource.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
API
Erstellen Sie das Zertifikat, indem Sie eine POST-Anfrage an die Methode certificates.create senden:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME"
{
"managed": {
"domains": ["DOMAIN_NAME"],
}
}
Ersetzen Sie Folgendes:
PROJECT_ID: ID Ihres Projekts in Google Cloud .CERTIFICATE_NAME: der Name des Zertifikats.DOMAIN_NAMES: eine durch Kommas getrennte Liste der Zieldomains. Jeder Domainname muss ein voll qualifizierter Domainname sein, z. B.myorg.example.com.
Zertifikat auf einem Load Balancer bereitstellen
Verwenden Sie eine Zertifikatszuordnung, um das globale, von Google verwaltete Zertifikat bereitzustellen.
Zertifikatzuordnung erstellen
Erstellen Sie eine Zertifikatszuordnung, die auf den Zertifikatszuordnungseintrag verweist, der mit Ihrem Zertifikat verknüpft ist:
gcloud
Verwenden Sie zum Erstellen einer Zertifikatzuordnung den Befehl gcloud certificate-manager maps create:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Ersetzen Sie CERTIFICATE_MAP_NAME durch den Namen der Zielzertifikatszuordnung.
Terraform
Zum Erstellen einer Zertifikatzuordnung können Sie eine google_certificate_manager_certificate_map-Ressource verwenden.
Zertifikatszuordnungseintrag erstellen
Erstellen Sie einen Zertifikatszuordnungseintrag und verknüpfen Sie ihn mit Ihrem Zertifikat und Ihrer Zertifikatszuordnung:
gcloud
Verwenden Sie zum Erstellen eines Zertifikatszuordnungseintrags den Befehl gcloud certificate-manager maps entries create:
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: Name des Zertifikatszuordnungseintrags.CERTIFICATE_MAP_NAME: Name der Zertifikatszuordnung, mit der der Zertifikatszuordnungseintrag verknüpft ist.CERTIFICATE_NAME: der Name des Zertifikats, das Sie mit dem Zertifikatszuordnungseintrag verknüpfen möchten.HOSTNAME: Hostname, den Sie mit dem Zertifikatszuordnungseintrag verknüpfen möchten.Wenn Sie ein Zertifikat erstellen möchten, das sowohl eine Platzhalterdomain als auch eine Stammdomain abdeckt, geben Sie den Hostnamen mit einer Stammdomain und einem Platzhalter an, z. B.
example.comund*.example.com. Außerdem müssen Sie zwei Zertifikatszuordnungseinträge angeben – einen fürexample.comund einen für*.example.com.
Terraform
Verwenden Sie zum Erstellen eines Zertifikatszuordnungseintrags mit einer Stammdomain eine google_certificate_manager_certificate_map_entry-Ressource.
Verwenden Sie eine google_certificate_manager_certificate_map_entry-Ressource, um einen Zertifikatszuordnungseintrag mit einer Platzhalterdomain zu erstellen.
Prüfen, ob der Zertifikatszuordnungseintrag aktiv ist
Prüfen Sie, ob der Zertifikatszuordnungseintrag aktiv ist, bevor Sie die entsprechende Zertifikatszuordnung an den Ziel-Proxy anhängen.
Verwenden Sie den Befehl gcloud certificate-manager maps entries describe, um den Zertifikatszuordnungseintrag zu prüfen:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME"
Ersetzen Sie Folgendes:
CERTIFICATE_MAP_ENTRY_NAME: Name des Zertifikatszuordnungseintrags.CERTIFICATE_NAME: der Name des Zertifikats, das Sie mit dem Zertifikatszuordnungseintrag verknüpfen möchten.
Die Ausgabe sieht 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 Ziel-Proxy anhängen
Sie können die Zertifikatszuordnung an einen neuen oder vorhandenen Ziel-Proxy anhängen.
Console
Wenn der Zielproxy Teil eines vorhandenen Load Balancers ist, können Sie die Zertifikatszuordnung anhängen, indem Sie die Frontend-Konfiguration des Load Balancers bearbeiten.
Rufen Sie in der Google Cloud Console die Seite Load Balancing auf.
Klicken Sie auf den Namen des Load Balancers, den Sie aktualisieren möchten, und dann auf Bearbeiten.
Klicken Sie auf Frontend-Konfiguration und wählen Sie die Frontend-IP-Adresse und die Portkonfiguration aus, die Sie bearbeiten möchten.
Wenn Zertifikats-Repository auswählen angezeigt wird, wählen Sie Zertifikatszuordnung verwenden aus.
Wählen Sie in der Liste Zertifikatszuordnung auswählen Ihre Zertifikatszuordnung aus.
Klicken Sie auf Fertig und anschließend auf Aktualisieren.
gcloud
Verwenden Sie den Befehl gcloud compute target-https-proxies create, um die Zertifikatszuordnung an einen neuen Ziel-Proxy anzuhängen:
gcloud compute target-https-proxies create PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--url-map="URL_MAP" \
--global
Ersetzen Sie Folgendes:
PROXY_NAME: Name des Ziel-Proxys.CERTIFICATE_MAP_NAME: Name der Zertifikatszuordnung, die auf den Zertifikatszuordnungseintrag und das zugehörige Zertifikat verweist.URL_MAP: der Name des URL-Mappings
Verwenden Sie den Befehl gcloud compute target-https-proxies update, um die Zertifikatszuordnung an einen vorhandenen Ziel-HTTPS-Proxy anzuhängen. Wenn Sie den Namen des vorhandenen Ziel-Proxys nicht kennen, rufen Sie die Seite Zielproxys auf und notieren Sie sich den Namen des Ziel-Proxys.
gcloud compute target-https-proxies update PROXY_NAME \
--certificate-map="CERTIFICATE_MAP_NAME" \
--global
Führen Sie nach dem Erstellen oder Aktualisieren des Ziel-Proxys den folgenden Befehl aus, um ihn zu prüfen:
gcloud compute target-https-proxies list
Terraform
Wenn Sie die Zertifikatszuordnung an den Zielproxy anhängen möchten, können Sie eine google_compute_target_https_proxy-Ressource verwenden.
Wenn Sie beim Konfigurieren eines Zielproxys TLS-Zertifikate (SSL) direkt und auch über eine Zertifikatszuordnung anhängen, verwendet der Proxy die Zertifikate, auf die die Zertifikatszuordnung verweist, und ignoriert die direkt angehängten TLS-Zertifikate (SSL).
Status des Zertifikats prüfen
Prüfen Sie vor der Bereitstellung eines Zertifikats auf einem Load Balancer, ob es aktiv ist. Es kann einige Minuten dauern, bis sich der Zertifikatstatus in ACTIVE ändert.
Console
Rufen Sie in der Google Cloud Console die Seite Zertifikatmanager auf.
Prüfen Sie auf dem Tab Zertifikate die Spalte Status für das Zertifikat.
gcloud
Führen Sie den folgenden Befehl aus, um den Status des Zertifikats zu prüfen:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Ersetzen Sie CERTIFICATE_NAME durch den Namen des von Google verwalteten Zielzertifikats.
Die Ausgabe sieht etwa so aus:
createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
authorizationAttemptInfo:
- domain: myorg.example.com
state: AUTHORIZED
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'
Wenn der Zertifikatsstatus nach mehreren Stunden nicht ACTIVE lautet, prüfen Sie Folgendes:
- Die Zertifikatszuordnung, die auf das Zertifikat verweist, ist an den richtigen Zielproxy angehängt.
- Der Ziel-Proxy ist an den richtigen Load Balancer angehängt.
- Die DNS-Konfiguration der Zieldomain verweist auf die IP-Adresse des Ziel-Load-Balancers.
Weitere Schritte zur Fehlerbehebung finden Sie unter Fehlerbehebung im Zertifikatmanager.
Bereinigen
Wenn Sie vermeiden möchten, dass Ihrem Google Cloud Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden, löschen Sie sie.
Löschen Sie den Load Balancer und seine Ressourcen.
Weitere Informationen finden Sie unter Load-Balancing-Einrichtung bereinigen.
Löschen Sie die Zertifikatszuordnung oder trennen Sie sie vom Proxy.
Führen Sie den folgenden Befehl aus, um die Zertifikatszuordnung zu löschen:
gcloud compute target-https-proxies delete PROXY_NAME
Wenn Sie den HTTPS-Zielproxy behalten möchten, trennen Sie die Zertifikatszuordnung vom Proxy.
- Wenn TLS-Zertifikate (SSL) direkt an den Proxy angehängt sind, führt das Trennen der Zertifikatszuordnung dazu, dass der Proxy diese direkt angehängten TLS-Zertifikate (SSL) wieder verwendet.
- Wenn keine TLS-Zertifikate (SSL) direkt an den Proxy angehängt sind, kann die Zertifikatszuordnung nicht vom Proxy getrennt werden. Sie müssen zuerst mindestens ein TLS-Zertifikat (SSL) direkt an den Proxy anhängen, bevor Sie die Zertifikatszuordnung trennen können.
Führen Sie den folgenden Befehl aus, um die Zertifikatszuordnung zu trennen:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-mapErsetzen Sie
PROXY_NAMEdurch den Namen des Ziel-Proxys.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: Name des Zertifikatszuordnungseintrags.CERTIFICATE_MAP_NAME: Name der Zertifikatszuordnung.
Löschen Sie die Zertifikatszuordnung:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Ersetzen Sie
CERTIFICATE_MAP_NAMEdurch den Namen der Zertifikatszuordnung.Löschen Sie das von Google verwaltete Zertifikat:
Console
Rufen Sie in der Google Cloud Console die Seite Zertifikatmanager auf.
Klicken Sie auf dem Tab Zertifikate das Kästchen des Zertifikats an.
Klicken Sie auf Löschen.
Klicken Sie im angezeigten Dialogfeld zur Bestätigung auf Löschen.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Ersetzen Sie
CERTIFICATE_NAMEdurch den Namen des Zielzertifikats.