In dieser Anleitung wird beschrieben, wie Sie mit Certificate Manager ein globales von Google verwaltetes Zertifikat mit dem Certificate Authority Service bereitstellen.
Die folgenden globalen Load-Balancer unterstützen von Google verwaltete Zertifikate mit Certificate Authority Service:
- Globaler externer Application Load Balancer
- Klassischer Application Load Balancer
- Globaler externer Proxy-Network Load Balancer
Wenn Sie die Bereitstellung für regionenübergreifende oder regionale Load Balancer vornehmen möchten, lesen Sie die folgenden Informationen:
Lernziele
In diesem Anleitung werden die folgenden Aufgaben erläutert:
- Von Google verwaltetes Zertifikat mit CA Service über den Zertifikatmanager erstellen
- Stellen Sie das Zertifikat mit einem HTTPS-Zielproxy auf einem unterstützten Load-Balancer bereit.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Aktivieren Sie die CA Service API.
- Erstellen Sie einen CA-Pool. Sie müssen mindestens eine CA in diesem CA-Pool erstellen und aktivieren.
- Zertifikate, die Sie mit dem Certificate Authority Service erstellen, sind nicht öffentlich vertrauenswürdig. Wenn Sie öffentlich vertrauenswürdige Zertifikate ausstellen möchten, erstellen Sie Zertifikate mit DNS-Autorisierung oder Load-Balancer-Autorisierung.
Wenn für den Ziel-CA-Pool eine Richtlinie zur Zertifikatausstellung gilt, kann die Zertifikatsbereitstellung aus einem der folgenden Gründe fehlschlagen:
- Das angeforderte Zertifikat wurde durch die Zertifikatsausstellungsrichtlinie blockiert. In diesem Fall wird Ihnen nichts in Rechnung gestellt, da das Zertifikat nicht ausgestellt wurde.
- Die Richtlinie hat Änderungen am Zertifikat vorgenommen, die von Certificate Manager nicht unterstützt werden. In diesem Fall wird Ihnen das Zertifikat in Rechnung gestellt, da es ausgestellt wurde, auch wenn es nicht vollständig mit dem Zertifikatmanager kompatibel ist.
Globale von Google verwaltete TLS-Zertifikate können so konfiguriert werden, dass sie von einem Zertifizierungsstellenpool in einer beliebigen Region ausgestellt werden.
Zertifikatmanager-Inhaber (
roles/certificatemanager.owner
)Erforderlich zum Erstellen und Verwalten von Certificate Manager-Ressourcen.
Administrator für Compute-Load-Balancer (
roles/compute.loadBalancerAdmin
) oder Compute-Netzwerkadministrator (roles/compute.networkAdmin
)Erforderlich zum Erstellen und Verwalten von HTTPS-Zielproxys.
CA Service-Administrator (
roles/privateca.admin
)Erforderlich, um Aktionen in CA Service auszuführen.
- Rollen und Berechtigungen für Certificate Manager.
- Compute Engine-IAM-Rollen und -Berechtigungen für Compute Engine.
- Zugriffssteuerung mit IAM für CA Service.
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 Einen klassischen Application Load Balancer mit einem Backend einer verwalteten Instanzgruppe (Managed Instance Group, MIG) 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-Back-Ends 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.
Bevor Sie die Schritte in dieser Anleitung ausführen, müssen Sie Folgendes beachten:
Erforderliche Rollen
Sie benötigen die folgenden Rollen, um die Aufgaben in dieser Anleitung auszuführen:
Hier finden Sie weitere Informationen:
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:
CA Service-Integration mit Certificate Manager konfigurieren
So integrieren Sie den CA-Dienst in Certificate Manager:
Erstellen Sie im Zielprojekt Google Cloud ein Certificate Manager-Dienstkonto:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID desGoogle Cloud Zielprojekts.Der Befehl gibt den Namen der erstellten Dienstidentität zurück. Sehen Sie sich folgendes Beispiel an:
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
Weisen Sie dem Certificate Manager-Dienstkonto im Ziel-CA-Pool die Rolle CA Service-Zertifikatsanfragesteller (
roles/privateca.certificateRequester
) zu:gcloud privateca pools add-iam-policy-binding CA_POOL \ --location LOCATION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Ersetzen Sie Folgendes:
CA_POOL
: die ID des Ziel-CA-Pools.LOCATION
: der Ziel Google Cloud standort.SERVICE_ACCOUNT
: der vollständige Name des Dienstkontos, das Sie in Schritt 1 erstellt haben.
Erstellen Sie eine Konfigurationsressource für die Zertifikatsausstellung für Ihren CA-Pool:
Console
Rufen Sie in der Google Cloud Console auf der Seite Certificate Manager den Tab Ausstellungskonfigurationen auf.
Klicken Sie auf Erstellen. Die Seite Konfiguration der Zertifikatsausstellung erstellen wird angezeigt.
Geben Sie im Feld Name einen eindeutigen Namen für die Konfiguration zur Zertifikatausstellung ein.
Optional: Geben Sie im Feld Beschreibung eine Beschreibung für die Ausstellungs-Konfiguration ein.
Wählen Sie unter Standort die Option Global aus.
Optional: Geben Sie im Feld Lebensdauer die Lebensdauer des ausgestellten Zertifikats in Tagen an. Der Wert muss zwischen 21 und 30 Tagen (einschließlich) liegen.
Optional: Geben Sie unter Rotation window percentage (Prozentsatz des Rotationszeitraums) den Prozentsatz der Lebensdauer des Zertifikats an, ab dem die Verlängerung beginnt. Informationen zum gültigen Wertebereich finden Sie unter Prozentsatz für Lebensdauer und Rotationszeitraum.
Optional: Wählen Sie in der Liste Schlüsselalgorithmus den Schlüsselalgorithmus aus, der beim Generieren des privaten Schlüssels verwendet werden soll.
Wählen Sie in der Liste CA-Pool den Namen des CA-Pools aus, der dieser Konfigurationsressource für die Zertifikatausstellung zugewiesen werden soll.
Geben Sie im Feld Labels Labels an, die dem Zertifikat zugeordnet 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.
gcloud
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL
Ersetzen Sie Folgendes:
ISSUANCE_CONFIG_NAME
: der Name der Ressource für die Konfiguration der Zertifikatausstellung.CA_POOL
: Der vollständige Ressourcenpfad und Name des CA-Pools, den Sie dieser Ressource für die Konfiguration der Zertifikatsausstellung zuweisen möchten.
Weitere Informationen zu Konfigurationsressourcen für die Zertifikatsausstellung finden Sie unter Konfigurationsressourcen für die Zertifikatsausstellung verwalten.
Von Google verwaltetes Zertifikat erstellen, das von Ihrer CA Service-Instanz ausgestellt wurde
So erstellen Sie ein von Google verwaltetes Zertifikat, das von Ihrer CA Service-Instanz ausgestellt wird:
Console
Rufen Sie in der Google Cloud Console die Seite Certificate Manager auf.
Klicken Sie auf dem Tab Zertifikate auf Zertifikat hinzufügen.
Geben Sie im Feld Zertifikatname 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 unter Zertifizierungsstellentyp die Option Privat 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 für Konfiguration für Zertifikatsausstellung auswählen den Namen der Konfigurationsressource für die Zertifikatsausstellung aus, die auf den Ziel-CA-Pool verweist.
Geben Sie im Feld Labels Labels an, die dem Zertifikat zugeordnet 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 zum Erstellen eines globalen, von Google verwalteten Zertifikats mit dem Certificate Authority Service den Befehl certificate-manager certificates create
mit dem Flag issuance-config
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME
Ersetzen Sie Folgendes:
CERTIFICATE_NAME
: Der Name des Zertifikats.DOMAIN_NAME
: der Name der Zieldomain. Der Domainname muss ein voll qualifizierter Domainname sein, z. B.myorg.example.com
.ISSUANCE_CONFIG_NAME
: der Name der Konfigurationsressource für die Zertifikatsausstellung, die auf den Ziel-CA-Pool verweist.
API
Erstellen Sie das Zertifikat. Stellen Sie dazu eine POST
-Anfrage an die Methode certificates.create
:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Google Cloud Projekts.CERTIFICATE_NAME
: Der Name des Zertifikats.DOMAIN_NAME
: der Name der Zieldomain. Der Domainname muss ein voll qualifizierter Domainname sein, z. B.myorg.example.com
.ISSUANCE_CONFIG_NAME
: der Name der Konfigurationsressource für die Zertifikatsausstellung, die auf den Ziel-CA-Pool verweist.
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 Certificate Manager auf.
Sehen Sie sich auf dem Tab Zertifikate die Spalte Status für das Zertifikat an.
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 Zielzertifikats, das von Google verwaltet wird.
Die Ausgabe sieht etwa so aus:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig state: ACTIVE name: projects/myproject/locations/global/certificates/mycertificate pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Weitere Schritte zur Fehlerbehebung finden Sie unter Fehlerbehebung für Certificate Manager.
Zertifikat für einen 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 den Befehl gcloud certificate-manager maps create
, um eine Zertifikatszuordnung zu erstellen:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Ersetzen Sie CERTIFICATE_MAP_NAME
durch den Namen der Zielzertifikatszuordnung.
Terraform
Zum Erstellen einer Zertifikatszuordnung können Sie eine google_certificate_manager_certificate_map
-Ressource verwenden.
Zertifikatszuordnungseintrag erstellen
Erstellen Sie einen Eintrag für die Zertifikatszuordnung 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
: der Name des Zertifikatszuordnungseintrags.CERTIFICATE_MAP_NAME
: der Name der Zertifikatszuordnung, an die der Eintrag der Zertifikatszuordnung angehängt ist.CERTIFICATE_NAME
: der Name des Zertifikats, das Sie mit dem Eintrag der Zertifikatszuordnung verknüpfen möchten.HOSTNAME
: Der Hostname, den Sie dem Zertifikatszuordnungseintrag zuordnen 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.com
und*.example.com
. Außerdem müssen Sie zwei Einträge für die Zertifikatszuordnung angeben: einen fürexample.com
und einen für*.example.com
.
Terraform
Verwenden Sie eine google_certificate_manager_certificate_map_entry
-Ressource, um einen Zertifikatszuordnungseintrag mit einer Stammdomain zu erstellen.
Wenn Sie einen Eintrag in der Zertifikatszuordnung mit einer Platzhalterdomain erstellen möchten, verwenden Sie eine google_certificate_manager_certificate_map_entry
-Ressource.
Prüfen, ob der Eintrag in der Zertifikatszuordnung aktiv ist
Prüfen Sie, ob der Eintrag der Zertifikatszuordnung aktiv ist, bevor Sie die entsprechende Zertifikatszuordnung an den Zielproxy anhängen.
Verwenden Sie den Befehl gcloud certificate-manager maps entries describe
, um den Eintrag der Zertifikatszuordnung zu prüfen:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Ersetzen Sie Folgendes:
CERTIFICATE_MAP_ENTRY_NAME
: der Name des Zertifikatszuordnungseintrags.CERTIFICATE_NAME
: der Name des Zertifikats, das Sie mit dem Eintrag der Zertifikatszuordnung 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 Zielproxy anhängen
Sie können die Zertifikatszuordnung an einen neuen oder vorhandenen Zielproxy anhängen.
gcloud
Verwenden Sie den Befehl gcloud compute target-https-proxies create
, um die Zertifikatszuordnung an einen neuen Zielproxy 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
: der Name des Zielproxys.CERTIFICATE_MAP_NAME
: der Name der Zertifikatszuordnung, die auf den Eintrag der Zertifikatszuordnung und das zugehörige Zertifikat verweist.URL_MAP
: der Name der URL-Zuordnung
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 Zielproxys nicht kennen, rufen Sie die Seite Zielproxys auf und notieren Sie sich den Namen des Zielproxys.
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Führen Sie nach dem Erstellen oder Aktualisieren des Zielproxys den folgenden Befehl aus, um ihn zu überprüfen:
gcloud compute target-https-proxies list
Terraform
Um die Zertifikatszuordnung an den Zielproxy anzuhängen, können Sie eine google_compute_target_https_proxy
-Ressource verwenden.
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.
Fehlerbehebung bei Zertifikaten, die von CA Service ausgestellt wurden
Schritte zur Fehlerbehebung finden Sie unter Probleme im Zusammenhang mit Zertifikaten, die von einer CA Service-Instanz ausgestellt wurden.
Bereinigen
Löschen Sie die in dieser Anleitung verwendeten Ressourcen, um zu vermeiden, dass Ihrem Google Cloud Konto dafür Gebühren berechnet werden.
Löschen Sie den Load-Balancer und seine Ressourcen.
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. Beachten Sie Folgendes, bevor Sie die Zertifikatszuordnung trennen:
- Wenn dem Proxy TLS-Zertifikate (SSL) direkt zugeordnet sind, werden diese wieder verwendet, wenn die Zertifikatszuordnung getrennt wird.
- Wenn dem Proxy keine TLS-Zertifikate (SSL) direkt zugeordnet sind, kann die Zertifikatszuordnung nicht vom Proxy getrennt werden. Sie müssen dem Proxy zuerst mindestens ein TLS- (SSL-)Zertifikat direkt zuordnen, 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-map
Ersetzen Sie
PROXY_NAME
durch den Namen des Zielproxys.Löschen Sie den Eintrag der Zertifikatszuordnung 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 Zertifikatszuordnungseintrags.CERTIFICATE_MAP_NAME
: der Name der Zertifikatszuordnung.
Löschen Sie die Zertifikatzuordnung:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Ersetzen Sie
CERTIFICATE_MAP_NAME
durch den Namen der Zertifikatszuordnung.Löschen Sie das von Google verwaltete Zertifikat:
Console
Rufen Sie in der Google Cloud Console die Seite Certificate Manager 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_NAME
durch den Namen des Zielzertifikats.Löschen Sie die Konfigurationsressource für die Zertifikatsausstellung:
Console
Rufen Sie in der Google Cloud Console auf der Seite Certificate Manager den Tab Ausstellungskonfigurationen auf.
Klicken Sie das Kästchen neben der Ressource für die Ausstellungskonfiguration an, die Sie löschen möchten.
Klicken Sie auf Löschen.
Klicken Sie im angezeigten Dialogfeld zur Bestätigung auf Löschen.
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
Ersetzen Sie
ISSUANCE_CONFIG_NAME
durch den Namen der Zielressource für die Konfiguration der Zertifikatausstellung.Löschen Sie den CA-Pool.
Wenn Sie den CA-Pool löschen oder die letzte aktivierte CA in einem CA-Pool deaktivieren möchten, auf den von einer Ressource für die Konfiguration der Zertifikatsausstellung verwiesen wird, löschen Sie alle Ressourcen für die Konfiguration der Zertifikatsausstellung, die auf den CA-Pool verweisen. Weitere Informationen finden Sie unter CA-Pool löschen.