Globales, von Google verwaltetes Zertifikat mit Certificate Authority Service bereitstellen


In dieser Anleitung wird der Prozess der Zertifikatbereitstellung anhand eines von Google verwalteten Zertifikats mit Certificate Authority Service als Beispiel beschrieben.

Die folgenden Load-Balancer unterstützen von Google verwaltete Zertifikate mit dem CA-Dienst:

  • Globaler externer Application Load Balancer
  • Klassischer Application Load Balancer
  • Regionsübergreifender interner Application Load Balancer
  • Globaler externer Proxy-Network Load Balancer

Wenn im Zielpool-Pool eine Richtlinie für die Zertifikatsausstellung gilt, schlägt die Bereitstellung von Zertifikaten aus einem der folgenden Gründe fehl:

  • Die Richtlinie zur Zertifikatsausstellung hat das angeforderte Zertifikat blockiert. In diesem Fall werden Ihnen keine Kosten in Rechnung gestellt, da das Zertifikat noch 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 ö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 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:

  • 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 zur Bereitstellung von Zertifikaten finden Sie unter Bereitstellungsübersicht.

Hinweise

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Sie benötigen die folgenden Rollen, um die Aufgaben in dieser Anleitung auszuführen:

    • 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:

  3. Aktivieren Sie die CA Service API.

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

Einbindung von CA Service in Certificate Manager konfigurieren

Konfigurieren Sie den Zertifikatmanager so, dass er in den CA-Dienst integriert wird:

  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 Dienstkonto des Zertifikatmanagers die Rolle „Certificate Requester“ im Ziel-CA-Pool:

    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.
  3. 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 Konfigurationsressource für die 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, zu 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 Verschlüsselungsalgorithmus, der zum Generieren des privaten Schlüssels verwendet 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 der 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

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

    Zum Zertifikatmanager

  2. Wählen Sie auf der angezeigten Seite den Tab Zertifikate aus.

  3. Klicken Sie auf Zertifikat hinzufügen.

  4. Geben Sie einen Namen für das Zertifikat ein.

    Dieser Name muss für das Projekt eindeutig sein.

  5. Optional: Geben Sie eine Beschreibung für das Zertifikat ein. Anhand der Beschreibung können Sie später ein bestimmtes Zertifikat identifizieren.

  6. Wählen Sie für Standort die Option Global aus.

  7. Wählen Sie für Umfang eine der folgenden Optionen aus:

    1. 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.
    2. Alle Regionen: Wählen Sie alle Regionen für einen regionenübergreifenden internen Application Load Balancer aus.
  8. Wählen Sie für Zertifikatstyp die Option Von Google verwaltetes Zertifikat erstellen aus.

  9. Wählen Sie als Typ der Zertifizierungsstelle die Option Privat aus.

  10. Geben Sie die Domainnamen für das Zertifikat an. Geben Sie eine durch Kommas getrennte Liste der Zieldomains ein. Außerdem muss jeder Domainname ein vollständig qualifizierter Domainname sein, z. B. myorg.example.com.

  11. Wählen Sie für die Konfiguration der Zertifikatsausstellung den Namen der Konfigurationsressource für die Zertifikatsausstellung aus, die auf den CA-Zielpool verweist.

  12. Geben Sie ein Label an, das mit dem Zertifikat verknüpft werden soll. Sie können bei Bedarf mehrere Labels hinzufügen. Klicken Sie zum Hinzufügen eines Labels auf die Schaltfläche Label hinzufügen und geben Sie key und value für das Label an.

  13. 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 vollständig 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 CA-Zielpool 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 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 Google Cloud-Zielprojekts.
  • CERTIFICATE_NAME: Ein eindeutiger Name des Zertifikats.
  • 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 den CA-Zielpool 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 vollständig 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.

Eine Übersicht über den Prozess der Zertifikatsbereitstellung 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:

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 erforderlichen Schritte zum Bereitstellen des von Google verwalteten Zertifikats für einen Load-Balancer beschrieben.

Bevor Sie mit den Aufgaben in diesem Abschnitt fortfahren, müssen Sie die Aufgaben ausgeführt haben, die in den Abschnitten Konfiguration der CA Service-Integration in Certificate Manager und Von Ihrer CA Service-Instanz ausgestelltes von Google verwaltetes Zertifikat erstellen ausgeführt wurden.

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 mit dem Zertifikat verknüpften Zertifikatszuordnungseintrag verweist:

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 Zertifikatszuordnungseintrag und verknüpfen Sie ihn sowohl mit Ihrem Zertifikat als auch mit 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 Sie mit diesem Zertifikatzuordnungseintrag verknüpfen möchten.
  • HOSTNAME: Der Hostname, den Sie mit diesem Zertifikatzuordnungseintrag verknüpfen möchten.

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 Zieleintrags in der Zertifikatszuordnung
  • CERTIFICATE_MAP_NAME: der Name der Zertifikatszuordnung, an die dieser Zertifikatszuordnungseintrag 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:

  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 Eintrag in der Zertifikatszuordnung verweist, und das zugehörige Zertifikat.

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

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.

Fehlerbehebung

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

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 sind, führt das Trennen der Zertifikatszuordnung dazu, dass der Proxy diese direkt angehängten TLS/SSL-Zertifikate wieder verwendet.
    • Wenn keine TLS (SSL)-Zertifikate 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-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 Zieleintrags für die Zertifikatszuordnung
    • CERTIFICATE_MAP_NAME: der Name der Zielzertifikatszuordnung
  3. Löschen Sie die Zertifikatszuordnung:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Ersetzen Sie CERTIFICATE_MAP_NAME durch den Namen der Zielzertifikatszuordnung.

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

    Console

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

      Zum Zertifikatmanager

    2. Klicken Sie auf dem Tab Zertifikate das Kästchen des Zertifikats an.

    3. Klicken Sie auf Löschen.

    4. 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.

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

    Console

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

      Zum Zertifikatmanager

    2. Klicken Sie auf dem Tab Issuance Configs auf das Kästchen der Ausstellungskonfiguration.

    3. Klicken Sie auf Löschen.

    4. 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 Konfigurationsressource für die Zielzertifikatausstellung.

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

    Wenn Sie die letzte Zertifizierungsstelle aktivieren, die Sie im CA-Pool aktiviert haben, auf den in der Konfiguration der Zertifikatsausstellung verwiesen wird, oder um den referenzierten CA-Pool vollständig zu löschen, müssen Sie zuerst alle Konfigurationen für die Zertifikatsausstellung löschen, die auf diesen CA-Pool verweisen.

Nächste Schritte