Globales von Google verwaltetes Zertifikat mit Load Balancer-Autorisierung bereitstellen


In dieser Anleitung erfahren Sie, wie Sie mit dem Zertifikatsmanager ein globales von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung bereitstellen.

Die Load Balancer-Autorisierung ist die effizienteste Methode, um ein von Google verwaltetes Zertifikat zu erhalten. So bleibt Ihre DNS-Konfiguration sauber und das TLS-Zertifikat wird bereitgestellt, sobald die Konfiguration abgeschlossen ist.

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

Lernziele

In diesem Anleitung werden die folgenden Aufgaben erläutert:

  • Erstellen Sie mit dem Zertifikatmanager ein von einer öffentlich vertrauenswürdigen Zertifizierungsstelle ausgestelltes, von Google verwaltetes Zertifikat mit Load Balancer-Autorisierung.
  • Bereitstellen des Zertifikats auf einem unterstützten Load Balancer mit einem HTTPS-Zielproxy

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.

Hinweise

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine, Certificate Manager APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. 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 ausführen zu können:

  • 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-Ziel-Proxys.

  • DNS-Administrator (roles/dns.admin)

    Erforderlich, wenn Sie Cloud DNS als DNS-Lösung verwenden möchten.

Hier finden Sie weitere Informationen:

Domainnamen

Wenn Sie Zertifikate erstellen möchten, müssen Sie die voll qualifizierten Domainnamen (FQDNs) der Domains abrufen, deren Inhaber Sie sind. Wenn Sie noch 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:

Von Google verwaltetes Zertifikat mit Load Balancer-Autorisierung erstellen

So erstellen Sie ein von Google verwaltetes Zertifikat mit Load Balancer-Autorisierung:

Console

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

    Zum Zertifikatmanager

  2. Klicken Sie auf dem Tab Zertifikate auf Zertifikat hinzufügen.

  3. Geben Sie im Feld Zertifikatname einen eindeutigen Namen für das Zertifikat ein.

  4. Optional: Geben Sie im Feld Beschreibung eine Beschreibung für das Zertifikat ein. Anhand der Beschreibung können Sie das Zertifikat identifizieren.

  5. Wählen Sie unter Standort die Option Global aus.

  6. Wählen Sie für Umfang die Option Standard aus.

  7. Wählen Sie unter Zertifikattyp die Option Von Google verwaltetes Zertifikat erstellen aus.

  8. Wählen Sie für Zertifizierungsstellentyp die Option Öffentlich aus.

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

  10. Wählen Sie als Autorisierungstyp die Option Load Balancer-Autorisierung aus.

  11. Geben Sie im Feld Labels die 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.

  12. 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 ist 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.

resource "google_certificate_manager_certificate" "default" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "Cert with LB authorization"
  managed {
    domains = [local.domain]
  }
  labels = {
    "terraform" : true
  }
}

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

API

So erstellen Sie das Zertifikat:POSTcertificates.create

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME"
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
 }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID des Google Cloud-Projekts.
  • CERTIFICATE_NAME ist 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 Eintrag in der Zertifikatszuordnung verweist, der mit Ihrem Zertifikat verknüpft ist:

gcloud

Verwenden Sie den Befehl gcloud certificate-manager maps create, um eine Zertifikatzuordnung zu erstellen:

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.

resource "google_certificate_manager_certificate_map" "certificate_map" {
  name        = "${local.name}-certmap-${random_id.tf_prefix.hex}"
  description = "${local.domain} certificate map"
  labels = {
    "terraform" : true
  }
}

Zertifikatszuordnungseintrag erstellen

Erstellen Sie einen Eintrag für die Zertifikatszuordnung und verknüpfen Sie ihn mit dem Zertifikat und der Zertifikatszuordnung:

gcloud

Verwenden Sie den Befehl gcloud certificate-manager maps entries create, um einen Eintrag in der Zertifikatzuordnung zu erstellen:

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 Zertifikate mit einer Platzhalterdomain erstellen, geben Sie auch den Hostnamen mit einem Platzhalter an, z. B. *.example.com.

Terraform

Zum Erstellen eines Zertifikatzuordnungseintrags können Sie eine google_certificate_manager_certificate_map_entry-Ressource verwenden.

resource "google_certificate_manager_certificate_map_entry" "first_entry" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = local.domain
}

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

Sie können die Zertifikatszuordnung einem neuen oder einem vorhandenen Zielproxy zuordnen.

gcloud

Verwenden Sie den Befehl gcloud compute target-https-proxies create, um die Zertifikatzuordnung 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, der 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 Zertifikatzuordnung 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 Zielproxies den folgenden Befehl aus, um ihn zu überprüfen:

gcloud compute target-https-proxies list

Terraform

Sie können die Zertifikatszuordnung mithilfe einer google_compute_target_https_proxy-Ressource an den Zielproxy anhängen.

Wenn Sie beim Konfigurieren eines Zielproxies 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.

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

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

    Zum Zertifikatmanager

  2. Prüfen Sie auf dem Tab Zertifikate in der Spalte Status den Status des Zertifikats.

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 in 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 ist, prüfen Sie Folgendes:

Weitere Schritte zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Certificate Manager.

Bereinigen

Löschen Sie die in dieser Anleitung verwendeten Ressourcen, damit Ihrem Google Cloud -Konto keine Kosten in Rechnung gestellt werden.

  1. Löschen Sie den Load Balancer und seine Ressourcen.

    Weitere Informationen finden Sie unter Load-Balancing-Einrichtung bereinigen.

  2. Löschen oder trennen Sie die Zertifikatszuordnung vom Proxy.

    Führen Sie den folgenden Befehl aus, um die Zertifikatzuordnung zu löschen:

    gcloud compute target-https-proxies delete PROXY_NAME
    

    Wenn Sie den Ziel-HTTPS-Proxy beibehalten möchten, trennen Sie die Zertifikatzuordnung vom Proxy. Beachten Sie Folgendes, bevor Sie die Zertifikatszuordnung trennen:

    • Wenn direkt am Proxy TLS-Zertifikate (SSL) angehängt sind, wird die Verwendung dieser direkt angehängten TLS-Zertifikate (SSL) fortgesetzt, wenn die Zertifikatzuordnung getrennt wird.
    • Wenn keine TLS-Zertifikate (SSL) direkt mit dem Proxy verknüpft 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 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 Zielproxies.

  3. 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.
  4. Löschen Sie die Zertifikatzuordnung:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Ersetzen Sie CERTIFICATE_MAP_NAME durch den Namen der Zertifikatszuordnung.

  5. 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 auf das Kästchen des Zertifikats.

    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.

Nächste Schritte