Globales, von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung bereitstellen


In dieser Anleitung wird der Prozess der Zertifikatsbereitstellung mithilfe eines von Google verwalteten Zertifikats mit Load-Balancer beschrieben. Autorisierung als Beispiel.

Einen Vergleich der unterstützten Typen der Domainautorisierung finden Sie unter Domainautorisierung. Autorisierung.

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

Wenn Sie ein vorhandenes Zertifikat in den Zertifikatmanager migrieren möchten, folgen Sie stattdessen der Anleitung unter Zertifikate in den Zertifikatmanager migrieren.

Lernziele

In diesem Anleitung werden die folgenden Aufgaben erläutert:

  • Erstellen Sie mit Certificate Manager ein von einer öffentlich vertrauenswürdigen Zertifizierungsstelle ausgestelltes, von Google verwaltetes Zertifikat mit Load Balancer-Autorisierung.
  • Zertifikat mithilfe eines Ziel-HTTPS für einen unterstützten Load-Balancer bereitstellen Proxy.

Weitere Informationen zur Bereitstellung von Zertifikaten finden Sie unter Bereitstellung Übersicht.

Wenn Sie anhand der Schritte in dieser Anleitung ein Zertifikat für ein über die bereits Produktionstraffic bereitgestellt wird, denken Sie daran, dass der Traffic für wird diese Domain unterbrochen, während das Zertifikat bereitgestellt wird. auf dem entsprechenden Load-Balancer aktiviert ist.

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 diesem Anleitung:

    • Certificate Manager Owner (Inhaber des Zertifikatsmanagers): Erforderlich zum Erstellen und Zertifikatmanager-Ressourcen verwalten können.
    • Administrator für Compute-Load-Balancer oder Compute-Netzwerkadministrator: Erforderlich zum Erstellen und Verwalten des HTTPS-Zielproxys.
    • DNS-Administrator: Erforderlich, wenn Sie Cloud DNS als DNS-Lösung verwenden möchten.

    Hier finden Sie weitere Informationen:

Von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung erstellen

So erstellen Sie ein von Google verwaltetes Zertifikat mit Load-Balancer-Autorisierung: führen Sie die Schritte in diesem Abschnitt aus.

Wenn Sie mehrere Domainnamen für das Zertifikat angeben möchten, geben Sie einen durch Kommas getrennten Namen ein Liste der Zieldomainnamen für das Zertifikat.

Weitere Informationen finden Sie unter Berechtigungen und Rollen.

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. Die 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 die Option Standard 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 Öffentlich 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 voll qualifizierter Domainname, z. B. myorg.example.com.

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

  12. Geben Sie ein Label an, das mit dem Zertifikat verknüpft werden soll. Sie können mehrere Labels hinzufügen. Um ein Label hinzuzufügen, klicken Sie auf das Label hinzufügen und legen Sie key und value für das Label fest.

  13. Klicken Sie auf Erstellen. Prüfen Sie, ob das neue Zertifikat in der Liste der Zertifikate angezeigt wird.

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES"

Ersetzen Sie Folgendes:

  • CERTIFICATE_NAME: Ein eindeutiger Name des Zertifikats.
  • DOMAIN_NAMES: eine durch Kommas getrennte Liste des Ziels Domains für dieses Zertifikat. Jeder Domainname muss ein vollständig qualifizierter Domainname, z. B. myorg.example.com.

Terraform

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

Erstellen Sie das Zertifikat, indem Sie eine POST-Anfrage an den certificates.create-Methode so:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Google Cloud-Zielprojekts.
  • CERTIFICATE_NAME: ein eindeutiger Name zur Beschreibung Zertifikat.
  • DOMAIN_NAME: die Zieldomain für dieses Zertifikat. Der Domainname muss ein vollständig qualifizierter Domainname sein, z. B. myorg.example.com

Eine Übersicht über den Prozess der Zertifikatsbereitstellung finden Sie unter Bereitstellung Übersicht.

Zertifikat für einen Load-Balancer bereitstellen

Führen Sie die Schritte in diesem Abschnitt aus, um das von Google verwaltete Zertifikat, das Sie in den vorherigen Schritten erstellt haben, auf einem Load Balancer bereitzustellen.

Zertifikatzuordnung erstellen

Erstellen Sie eine Zertifikatszuordnung, die verweist auf die Zertifikatszuordnung einen Eintrag, der mit Ihrem Zertifikat.

gcloud

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Ersetzen Sie CERTIFICATE_MAP_NAME durch den Namen der Zielzertifikatszuordnung.

Terraform

Verwenden Sie eine google_certificate_manager_certificate_map-Ressource.

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

Eintrag für Zertifikatszuordnung erstellen

Zertifikatszuordnungseintrag erstellen und sie mit Ihren Zertifikat als und Ihre Zertifikatszuordnung.

gcloud

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 der Eintrag in Zertifikatszuordnung
  • CERTIFICATE_MAP_NAME: der Name der Zertifikatszuordnung, an die dieser Eintrag der Zertifikatszuordnung angehängt ist
  • CERTIFICATE_NAME: der Name des Zertifikats, das Sie die mit diesem Zertifikatzuordnungseintrag verknüpft werden sollen.
  • HOSTNAME: der Hostname, den Sie mit diesem Eintrag der Zertifikatszuordnung verknüpfen möchten

Terraform

google_certificate_manager_certificate_map_entry verwenden Ressource.

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

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 Ziels Eintrag in Zertifikatszuordnung
  • CERTIFICATE_MAP_NAME: der Name des Zertifikats, das dem an diesen Zertifikatzuordnungseintrag angehängt wird

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.

Console

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

Zum Ziel Proxys

  1. Notieren Sie sich den Namen des Zielproxys.

  2. 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`: the name of the target proxy
*   `CERTIFICATE_MAP_NAME`: the name of the certificate
    map referencing your certificate map entry and its associated
    certificate

Terraform

google_compute_target_https_proxy verwenden Ressource.

resource "google_compute_target_https_proxy" "default" {
  name            = "test-proxy"
  certificate_map = "//certificatemanager.googleapis.com/${google_certificate_manager_certificate_map.default.id}"
  url_map         = google_compute_url_map.default.id
}

Wenn bereits direkt an den Proxy angehängte TLS/SSL-Zertifikate vorhanden sind, der Proxy bevorzugt die Zertifikate, auf die von der Zertifikatszuordnung verwiesen wird. über die direkt angehängten TLS/SSL-Zertifikate.

Warten, bis das Zertifikat aktiviert wurde

Nachdem Sie das Zertifikat an den Zielproxy angehängt haben, kann es bis zu mehrere Stunden, bis das Zertifikat ausgestellt wird, und der Status ändert sich in ACTIVE Sobald der Status ACTIVE lautet, kann es bis zu 30 Minuten dauern, bis der Ladevorgang abgeschlossen ist. um das Zertifikat zu nutzen.

Verwenden Sie den folgenden Befehl, 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 des Befehls 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
sanDnsnames:
  -   myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Wenn sich der Zertifikatstatus nach einigen Stunden nicht zu ACTIVE geändert hat, prüfen Sie Folgendes:

Weitere Schritte zur Fehlerbehebung finden Sie unter Fehlerbehebung bei SSL Zertifikate.

Bereinigen

Führen Sie die folgenden Schritte aus, um die Änderungen, die Sie in dieser Anleitung vorgenommen haben, rückgängig zu machen. Schritte:

  1. Trennen Sie die Zertifikatszuordnung vom Proxy.

    Beachten Sie Folgendes, bevor Sie die Zertifikatszuordnung trennen:

    • Wenn direkt am Proxy TLS-Zertifikate (SSL) angehängt waren, verwendet der Proxy nach dem Entfernen der Zertifikatzuordnung wieder diese direkt angehängten TLS-Zertifikate (SSL).
    • Wenn keine TLS/SSL-Zertifikate direkt an den Proxy angehängt sind, Die Zertifikatszuordnung kann nicht vom Proxy getrennt werden. Sie müssen zuerst mindestens ein TLS/SSL-Zertifikat direkt zum Proxy, die Zertifikatszuordnung trennen.

    Führen Sie den folgenden Befehl aus, um die Zertifikatszuordnung zu trennen:

    gcloud compute target-https-proxies update PROXY_NAME \
       --clear-certificate-map
    
  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 Ziels Eintrag in Zertifikatszuordnung
    • CERTIFICATE_MAP_NAME: der Name des Ziels Zertifikatszuordnung
  3. Löschen Sie die Zertifikatszuordnung:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Ersetzen Sie CERTIFICATE_MAP_NAME durch den Namen des Ziels. Zertifikatszuordnung.

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

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Ersetzen Sie CERTIFICATE_NAME durch den Namen des Ziels. Zertifikat.

Nächste Schritte