Globales von Google verwaltetes Zertifikat mit Certificate Authority Service bereitstellen


In dieser Anleitung wird der Prozess zum Bereitstellen von Zertifikaten erläutert. Dabei wird ein von Google verwaltetes Zertifikat verwendet. Als Beispiel wird der Certificate Authority Service verwendet.

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

Wenn für den Zertifizierungsstellenpool eine Richtlinie zur Zertifikatsausstellung gilt, kann die Zertifikatsbereitstellung aus einem der folgenden Gründe fehlschlagen:

  • Die Richtlinie für die Zertifikatsausstellung hat das angeforderte Zertifikat blockiert. In diesem Fall werden Ihnen keine Kosten in Rechnung gestellt, da das Zertifikat noch nicht ausgestellt wurde.
  • Die Richtlinie hat Änderungen auf das Zertifikat angewendet, die vom Zertifikatmanager nicht unterstützt werden. In diesem Fall wird Ihnen das Zertifikat trotzdem in Rechnung gestellt, da es ausgestellt wurde, auch wenn es nicht vollständig mit dem Zertifikatmanager kompatibel ist.

Zertifikate, die mithilfe der Schritte in dieser Anleitung ausgestellt wurden, sind nicht öffentlich vertrauenswürdig. Wenn Sie öffentlich vertrauenswürdige Zertifikate ausstellen möchten, führen Sie stattdessen die Schritte in einer der folgenden Anleitungen aus:

Wenn Sie ein vorhandenes Zertifikat zum Zertifikatmanager migrieren möchten, führen Sie stattdessen die Schritte unter Zertifikate zum Zertifikatmanager migrieren aus.

Auch wenn Sie einen regionalen Zertifizierungsstellenpool verwenden, um ein von Google verwaltetes TLS-Zertifikat auszustellen, ist das Zertifikat selbst global und kann in jeder Region verwendet werden.

Lernziele

In diesem Anleitung werden die folgenden Aufgaben erläutert:

  • Erstellen Sie mit dem Zertifikatmanager ein von Google verwaltetes Zertifikat mit CA Service.
  • Stellen Sie das Zertifikat mithilfe eines Ziel-HTTPS-Proxys für einen unterstützten Load-Balancer bereit.

Weitere Informationen zum Bereitstellen von Zertifikaten finden Sie unter Bereitstellungsübersicht.

Hinweise

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  2. Für die Ausführung der Aufgaben in dieser Anleitung benötigen Sie die folgenden Rollen:

    • Inhaber des Zertifikatsmanagers: Erforderlich zum Erstellen und Verwalten von Zertifikatsmanager-Ressourcen.
    • Compute Load Balancer Admin oder Compute Network Admin: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:

  3. Aktivieren Sie die CA Service API.

  4. Erstellen Sie einen CA-Pool. Sie müssen in diesem Zertifizierungsstellenpool mindestens eine Zertifizierungsstelle erstellen und aktivieren.

CA Service-Integration in den Zertifikatmanager konfigurieren

Konfigurieren Sie den Zertifikatmanager für die Integration in den CA-Dienst wie folgt:

  1. Verwenden Sie den folgenden Befehl, um ein Dienstkonto für den Zertifikatmanager im Google Cloud-Zielprojekt zu erstellen:

    gcloud beta services identity create --service=certificatemanager.googleapis.com \
       --project=PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch die ID des Google 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
    
  2. Gewähren Sie dem Zertifikatmanager-Dienstkonto die Rolle "Certificate Requester" im Zielpool der Zertifizierungsstelle:

    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 Zertifizierungsstellenpools.
    • REGION: die Google Cloud-Zielregion.
    • SERVICE_ACCOUNT ist der vollständige Name des Dienstkontos, das Sie in Schritt 1 erstellt haben.
  3. Erstellen Sie eine Konfigurationsressource für die Zertifikatsausstellung für den Zertifizierungsstellenpool:

    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 Zertifizierungsstellenpools, den Sie dieser Konfigurationsressource für die Zertifikatsausstellung zuweisen möchten.
    • CERTIFICATE_LIFETIME: die Zertifikatslebensdauer in Tagen. Gültige Werte sind 21 bis 30 Tage im Standardformat für die Dauer. Der Standardwert beträgt 30 Tage (30D). Diese Einstellung ist optional.

    • ROTATION_WINDOW_PERCENTAGE: der Prozentsatz der Lebensdauer des Zertifikats, zu dem eine Verlängerung ausgelöst wird. Diese Einstellung ist optional.

      Der Standardwert ist 66 Prozent. Sie müssen den Prozentsatz des Rotationsfensters in Bezug auf die Zertifikatslebensdauer festlegen, sodass die Zertifikatserneuerung mindestens 7 Tage nach Ausstellung des Zertifikats und mindestens 7 Tage vor Ablauf erfolgt.

    • KEY_ALGORITHM: der Verschlüsselungsalgorithmus, mit dem der private Schlüssel generiert wird. Gültige Werte sind ecdsa-p256 und rsa-2048. Der Standardwert ist rsa-2048. Diese Einstellung ist optional.

Weitere Informationen zu Konfigurationen für die Zertifikatsausstellung finden Sie unter Konfigurationen für die Zertifikatsausstellung verwalten.

Von Google verwaltetes Zertifikat erstellen, das von Ihrer CA Service-Instanz ausgestellt wurde

Erstellen Sie wie folgt ein von Google verwaltetes Zertifikat, das von Ihrer CA Service-Instanz ausgestellt wurde:

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 Zielpool der Zertifizierungsstelle 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 voll qualifizierter Domainname sein, z. B. myorg.example.com.
  • ISSUANCE_CONFIG_NAME: Der Name der Konfigurationsressource für die Zertifikatsausstellung, die auf den Zielpool der Zertifizierungsstelle verweist.

API

Erstellen Sie das Zertifikat. Stellen Sie dazu eine POST-Anfrage an die Methode certificates.create:

Für einen globalen externen Application Load Balancer, einen klassischen Application Load Balancer oder einen globalen externen Proxy-Network 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 Google Cloud-Zielprojekts.
  • CERTIFICATE_NAME: Ein eindeutiger Name des Zertifikats.
  • 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 Zertifizierungsstellenpool verweist.

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 Google Cloud-Zielprojekts.
  • CERTIFICATE_NAME: Ein eindeutiger Name des Zertifikats.
  • 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 Zertifizierungsstellenpool verweist.

Einen Überblick über den Bereitstellungsprozess von Zertifikaten 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 von Google verwalteten Zielzertifikats.

Die Ausgabe des Befehls sieht in etwa so aus:

certificatePem: myPEM
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
scope: myScope
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Zertifikat für einen Load-Balancer bereitstellen

In diesem Abschnitt werden Sie durch die Schritte zum Bereitstellen des von Google verwalteten Zertifikats für einen Load-Balancer geführt.

Bevor Sie mit den Aufgaben in diesem Abschnitt fortfahren, müssen Sie die Schritte in den Abschnitten Einbindung von CA-Diensten in den Zertifikatmanager konfigurieren und Von Google verwaltetes Zertifikat erstellen, das von Ihrer CA-Dienstinstanz ausgestellt wurde ausgeführt haben.

Je nach Load-Balancer-Typ können Sie Zertifikate so bereitstellen:

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 Zertifikatszuordnungseintrag 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 Ihrem Zertifikat sowie Ihrer 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 des Zertifikatszuordnungseintrags
  • CERTIFICATE_MAP_NAME: der Name der Zertifikatszuordnung, an die dieser Zertifikatszuordnungseintrag angehängt ist
  • CERTIFICATE_NAME: der Name des Zertifikats, das mit diesem Zertifikatzuordnungseintrag verknüpft werden soll
  • HOSTNAME: der Hostname, den Sie mit diesem Zertifikatzuordnungseintrag verknüpfen möchten

Prüfen, ob der Eintrag für die 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 Eintrags für die Zielzertifikatzuordnung
  • CERTIFICATE_MAP_NAME: der Name der Zertifikatszuordnung, an die dieser Zertifikatszuordnungseintrag angehängt ist

Die Ausgabe des Befehls sieht in etwa so aus:

createTime: '2021-09-06T10:01:56.229472109Z'
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 gewünschten Zielproxy an:

  1. Rufen Sie in der Google Cloud Console die Seite Zielproxys auf.

    Zu Ziel-Proxys

  2. Notieren Sie sich den Namen des Zielproxys.

  3. 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 Zielproxys
    • CERTIFICATE_MAP_NAME: der Name der Zertifikatszuordnung, die auf den Zertifikatszuordnungseintrag und das zugehörige Zertifikat verweist

Wenn bereits TLS (SSL)-Zertifikate direkt an den Proxy angehängt sind, bevorzugt der Proxy die Zertifikate, auf die in der Zertifikatszuordnung verwiesen wird, gegenüber den direkt angehängten TLS (SSL)-Zertifikaten.

Hängen Sie das Zertifikat direkt an den Zielproxy an

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.

Fehlerbehebung

Schritte zur Fehlerbehebung finden Sie unter Probleme mit Zertifikaten, die von einer CA Service-Instanz ausgestellt werden.

Bereinigen

Mit den folgenden Schritten können Sie die in dieser Anleitung vorgenommenen Änderungen rückgängig machen:

  1. Trennen Sie die Zertifikatszuordnung vom Proxy.

    Beachten Sie Folgendes, bevor Sie die Zertifikatszuordnung trennen:

    • Wenn TLS (SSL)-Zertifikate direkt an den Proxy angehängt waren, werden nach dem Trennen der Zertifikatszuordnung wieder die direkt angehängten TLS (SSL)-Zertifikate vom Proxy verwendet.
    • Wenn keine TLS (SSL)-Zertifikate direkt an den Proxy angehängt waren, 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-map
    

    Ersetzen Sie PROXY_NAME durch den Namen des Zielproxys.

  2. 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 Eintrags für die Zielzertifikatzuordnung
    • CERTIFICATE_MAP_NAME: der Name der Zielzertifikatzuordnung
  3. Löschen Sie die Zertifikatszuordnung:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Ersetzen Sie CERTIFICATE_MAP_NAME durch den Namen der Zielzertifikatzuordnung.

  4. Löschen Sie das von Google verwaltete Zertifikat:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Ersetzen Sie CERTIFICATE_NAME durch den Namen des Zielzertifikats.

  5. Löschen Sie die Konfigurationsressource für die Zertifikatsausstellung:

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
    

    Ersetzen Sie ISSUANCE_CONFIG_NAME durch den Namen der Konfigurationsressource für die Zielzertifikatsausstellung.

  6. Löschen Sie den Zertifizierungsstellenpool wie unter CA-Pool löschen beschrieben.

    Wenn Sie die letzte aktivierte Zertifizierungsstelle im CA-Pool, auf den in der Zertifikatsausstellungskonfiguration verwiesen wird, deaktivieren oder den referenzierten CA-Pool vollständig löschen möchten, müssen Sie zuerst jede Konfiguration der Zertifikatsausstellung löschen, die auf diesen CA-Pool verweist.

Nächste Schritte