In dieser Anleitung wird der Prozess der Zertifikatsbereitstellung beschrieben. Verwendung eines von Google verwalteten Zertifikats mit Certificate Authority Service als Beispiel.
Die folgenden Load Balancer unterstützen von Google verwaltete Zertifikate mit CA Service:
- Globaler externer Application Load Balancer
- Klassischer Application Load Balancer
- Regionsübergreifender interner Application Load Balancer
- Globaler externer Proxy-Network Load Balancer
Ob eine Richtlinie zur Zertifikatsausstellung gilt im Ziel-CA-Pool kann die Bereitstellung von Zertifikaten aus einem der folgenden Gründe fehlschlagen:
- Das angeforderte Zertifikat wurde aufgrund der Zertifikatsausstellungsrichtlinie blockiert. In diesem Fall werden Ihnen keine Kosten in Rechnung gestellt, da das Zertifikat nicht ausgestellt wurde.
- Durch die Richtlinie wurden Änderungen am Zertifikat angewendet, die vom Zertifikatmanager nicht unterstützt werden. In diesem Fall werden Ihnen die Kosten nach der Ausstellung des Zertifikats in Rechnung gestellt, auch wenn es nicht vollständig mit dem Zertifikatmanager kompatibel ist.
Zertifikate, die anhand der Schritte in dieser Anleitung ausgestellt wurden, sind nicht öffentlich vertrauenswürdig. Wenn Sie Zertifikate ausstellen möchten, die öffentlich vertrauenswürdig sind, folgen Sie stattdessen der Anleitung in einem der folgenden Tutorials:
- Von Google verwaltetes Zertifikat mit DNS-Autorisierung bereitstellen (Anleitung)
- Von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung bereitstellen (Anleitung)
Wenn Sie ein vorhandenes Zertifikat in den Zertifikatmanager migrieren möchten, folgen Sie stattdessen der Anleitung unter Zertifikate in den Zertifikatmanager migrieren.
Auch wenn Sie einen regionalen CA-Pool zum Ausstellen eines von Google verwalteten TLS-Zertifikats verwenden, ist das Zertifikat selbst global und kann in jeder Region verwendet werden.
Lernziele
In diesem Anleitung werden die folgenden Aufgaben erläutert:
- Von Google verwaltetes Zertifikat mit CA Service erstellen mit dem Zertifikatmanager.
- Bereitstellen des Zertifikats auf einem unterstützten Load Balancer mit einem Ziel-HTTPS-Proxy
Weitere Informationen zur Bereitstellung von Zertifikaten finden Sie unter Bereitstellungsübersicht.
Hinweise
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Sie benötigen die folgenden Rollen, um die Aufgaben in dieser Anleitung ausführen zu können:
- Certificate Manager Owner (Zertifikatmanager-Inhaber): Erforderlich zum Erstellen und Verwalten von Zertifikatmanager-Ressourcen.
- Administrator für Compute-Load-Balancer oder Compute-Netzwerkadministrator:Erforderlich zum Erstellen und Verwalten des HTTPS-Zielproxys.
- Certificate Authority Service Admin:Erforderlich, um Aktionen innerhalb von CA Service auszuführen.
Hier finden Sie weitere Informationen:
- Rollen und Berechtigungen für den Zertifikatmanager
- Compute Engine-IAM-Rollen und -Berechtigungen für Compute Engine
- Berechtigungen und Rollen für CA Service
Erstellen Sie einen CA-Pool. Sie müssen zuerst erstellen und aktivieren mindestens eine Zertifizierungsstelle in diesem Zertifizierungsstellenpool vorhanden ist.
Einbindung von CA Service in Certificate Manager konfigurieren
Konfigurieren Sie den Zertifikatmanager so, dass er in den CA-Dienst integriert wird:
Verwenden Sie den folgenden Befehl, um ein Certificate Manager-Dienstkonto im Ziel-Google Cloud-Projekt zu erstellen:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID des Ziel-Google Cloud-Projekts.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
Gewähren Sie dem Dienstkonto des Zertifikatmanagers die Rolle „Certificate Requester“ in den CA-Zielpool so an:
gcloud privateca pools add-iam-policy-binding CA_POOL \ --location REGION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Ersetzen Sie Folgendes:
CA_POOL
: die ID des CA-Zielpools.REGION
: die Google Cloud-Zielregion.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 den CA-Pool:
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL \ [--lifetime=CERTIFICATE_LIFETIME] \ [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \ [--key-algorithm=KEY_ALGORITHM]
Ersetzen Sie Folgendes:
ISSUANCE_CONFIG_NAME
: Der eindeutige Name der Konfigurationsressource für die Zertifikatsausstellung.CA_POOL
: Der vollständige Ressourcenpfad und der Name des CA-Pools, den Sie dieser Ressource für die Konfiguration der Zertifikatsausstellung zuweisen möchten.CERTIFICATE_LIFETIME
: die Lebensdauer des Zertifikats in Tagen. Gültige Werte sind 21 bis 30 Tage im Standardformat für die Dauer. Der Standardwert ist 30 Tage (30D
). Diese Einstellung ist optional.ROTATION_WINDOW_PERCENTAGE
: der Prozentsatz der Lebensdauer des Zertifikats, bei dem eine Verlängerung ausgelöst wird. Diese Einstellung ist optional.Die Standardeinstellung ist 66 Prozent. Sie müssen den Prozentsatz für das Rotationsfenster im Verhältnis zur Lebensdauer des Zertifikats so einstellen, dass die Zertifikatsverlängerung mindestens 7 Tage nach Ausstellung des Zertifikats und mindestens 7 Tage vor dem Ablauf erfolgt.
KEY_ALGORITHM
: der für die Verarbeitung verwendete Verschlüsselungsalgorithmus den privaten Schlüssel generieren. Gültige Werte sindecdsa-p256
undrsa-2048
. Der Standardwert istrsa-2048
. Diese Einstellung ist optional.
Weitere Informationen zu Konfigurationen für die Zertifikatsausstellung finden Sie unter Konfigurationen für die Zertifikatsausstellung verwalten.
Von Ihrer CA Service-Instanz ausgestelltes von Google verwaltetes Zertifikat erstellen
So erstellen Sie ein von Google verwaltetes Zertifikat, das von Ihrer CA Service-Instanz ausgestellt wurde:
Console
Rufen Sie in der Google Cloud Console die Seite Zertifikatmanager auf.
Wählen Sie auf der 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 den Standard für einen 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 für Zertifikatstyp die Option Von Google verwaltetes Zertifikat erstellen aus.
Wählen Sie als Typ der Zertifizierungsstelle die Option Privat aus.
Geben Sie die Domainnamen des Zertifikats an. Durch Kommas getrennte Werte eingeben Liste der Zieldomains. Außerdem muss jeder Domainname ein voll qualifizierter Domainname sein, z. B.
myorg.example.com
.Wählen Sie für die Konfiguration für die Zertifikatsausstellung den Namen der Konfigurationsressource für die Zertifikatsausstellung aus, die auf den Ziel-CA-Pool verweist.
Geben Sie ein Label an, das mit dem Zertifikat verknüpft werden soll. Sie können bei Bedarf mehrere Labels hinzufügen. Klicken Sie auf add_boxLabel hinzufügen, um ein Label hinzuzufügen, und geben Sie einen
key
und einenvalue
für das Label an.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_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME
Ersetzen Sie Folgendes:
CERTIFICATE_NAME
: Ein eindeutiger Name des Zertifikats.DOMAIN_NAMES
: eine durch Kommas getrennte Liste der Zieldomains für dieses Zertifikat. Jeder 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 CA-Zielpool verweist.
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_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME \ --scope=all-regions
Ersetzen Sie Folgendes:
CERTIFICATE_NAME
: Ein eindeutiger Name des Zertifikats.DOMAIN_NAMES
: eine durch Kommas getrennte Liste der Zieldomains für dieses Zertifikat. Jeder Domainname muss ein vollständig 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
So erstellen Sie das Zertifikat:
Für einen globalen externen Application Load Balancer, einen Classic Application Load Balancer oder einen globalen externen Proxynetzwerk-Load Balancer:
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 Ziel-Google Cloud-Projekts.CERTIFICATE_NAME
: Ein eindeutiger Name für das Zertifikat.DOMAIN_NAME
: die Zieldomain für dieses Zertifikat. Der Domainname muss ein vollständig qualifizierter Domainname sein, z. B.myorg.example.com
.ISSUANCE_CONFIG_NAME
: der Name der Konfigurationsressource für die Zertifikatsausstellung, die auf Zertifizierungsstellenzielpool.
Für einen regionsübergreifenden internen Application Load Balancer:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", "scope": "ALL_REGIONS" } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Ziel-Google Cloud-Projekts.CERTIFICATE_NAME
: Ein eindeutiger Name für das Zertifikat.DOMAIN_NAME
: die Zieldomain für dieses Zertifikat. 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.
Eine Übersicht über den Zertifikatbereitstellungsprozess finden Sie unter Bereitstellungsübersicht.
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 einige Minuten 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:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myProject/locations/global/certificateIssuanceConfigs/myIssuanceConfig 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 für einen 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, stellen Sie sicher, dass Sie das Aufgaben, die in den Abschnitten Integration der Zertifizierungsstelle in den Zertifikatmanager konfigurieren und Von Google verwaltetes Zertifikat erstellen, das von Ihrer CA Service-Instanz ausgestellt wurde aufgeführt sind.
Je nach Load-Balancer-Typ können Sie Zertifikate so bereitstellen:
- Stellen Sie für die folgenden Load-Balancer das Zertifikat mithilfe einer Zertifikatszuordnung bereit:
- Globaler externer Application Load Balancer
- Globaler externer Proxy-Network Load Balancer
- Klassischer Application Load Balancer
- Stellen Sie das Zertifikat für den regionsübergreifenden internen Application Load Balancer bereit, indem Sie es direkt an den Zielproxy anhängen.
Zertifikat mithilfe einer Zertifikatszuordnung bereitstellen
In diesem Abschnitt werden die Schritte zum Bereitstellen eines Zertifikats mithilfe einer Zertifikatszuordnung beschrieben.
Zertifikatzuordnung erstellen
Erstellen Sie eine Zertifikatszuordnung, die auf den Eintrag der Zertifikatszuordnung verweist, der mit Ihrem Zertifikat verknüpft ist:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Ersetzen Sie CERTIFICATE_MAP_NAME
durch den Namen der Zielzertifikatzuordnung.
Eintrag für Zertifikatszuordnung erstellen
Erstellen Sie einen Eintrag für die Zertifikatszuordnung und verknüpfen Sie ihn mit dem Zertifikat und der Zertifikatszuordnung:
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 Eintrag in der ZertifikatszuordnungCERTIFICATE_MAP_NAME
: der Name der Zertifikatszuordnung, an die dieser Eintrag der Zertifikatszuordnung angehängt istCERTIFICATE_NAME
: Der Name des Zertifikats, das Sie mit diesem Eintrag der Zertifikatszuordnung verknüpfen möchten.HOSTNAME
: der Hostname, den Sie mit diesem Eintrag der Zertifikatszuordnung verknüpfen möchten
Prüfen, ob der Eintrag in der Zertifikatszuordnung 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:
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"
Ersetzen Sie Folgendes:
PROXY_NAME
: der Name des ZielproxysCERTIFICATE_MAP_NAME
: der Name der Zertifikatszuordnung Verweist auf Ihren Zertifikatzuordnungseintrag und das zugehörige Zertifikat
Sind bereits TLS/SSL-Zertifikate direkt an die Proxy gibt der Proxy den Vorzug für die Zertifikate, auf die von der Zertifikatszuordnung verwiesen wird. über 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
ist der Name des Zertifikats.
Fehlerbehebung
Schritte zur Fehlerbehebung finden Sie unter Probleme im Zusammenhang mit von einer CA Service-Instanz ausgestellten Zertifikaten.
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 wieder verwenden angehängte TLS/SSL-Zertifikate.
- Wenn keine TLS/SSL-Zertifikate direkt mit dem Proxy verbunden sind, ist die Zertifikatszuordnung kann nicht vom Proxy getrennt werden. Sie müssen zuerst mindestens ein TLS-Zertifikat (SSL) direkt an den Proxy anhängen, bevor Sie die Zertifikatzuordnung trennen können.
Führen Sie den folgenden Befehl aus, um die Zertifikatzuordnung zu lösen:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Ersetzen Sie
PROXY_NAME
durch den Namen des Zielproxys.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 Eintrag für die Zertifikatszuordnung im ZielCERTIFICATE_MAP_NAME
: der Name des 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:
Console
Rufen Sie in der Google Cloud Console die Seite Zertifikatmanager auf.
Klicken Sie auf dem Tab Zertifikate das Kästchen der Zertifikat.
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 die Seite Zertifikatmanager auf.
Klicken Sie auf dem Tab Issuance Configs (Ausgabekonfigurationen) das Kästchen neben Ausstellungskonfiguration.
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 Zertifikatsausstellung.Löschen Sie den Zertifizierungsstellenpool wie unter CA-Pool löschen beschrieben.
Zum Deaktivieren der letzten Zertifizierungsstelle, die Sie im Zertifizierungsstellenpool aktiviert haben, auf den im Konfiguration der Zertifikatsausstellung oder um den referenzierten CA-Pool vollständig zu löschen, müssen Sie Löschen Sie zuerst alle Konfigurationen für die Zertifikatsausstellung, die auf diesen CA-Pool verweisen.