Drittanbieterzertifikate zum Zertifikatmanager migrieren

In dieser Anleitung erfahren Sie, wie Sie Drittanbieterzertifikate mit dem Zertifikatmanager zu einem Load Balancer vonGoogle Cloud migrieren.

Wenn Sie Drittanbieterzertifikate ohne Ausfallzeiten migrieren möchten, erstellen Sie dieselbe Anzahl von von Google verwalteten Zertifikaten wie Ihre Drittanbieterzertifikate. Fassen Sie als Nächstes die Zertifikate in einer einzigen Zertifikatszuordnung zusammen und stellen Sie die Zertifikatszuordnung mithilfe von DNS auf einem Load Balancer bereit. Aktualisieren Sie abschließend die DNS-A- und AAAA-Einträge, sodass sie auf die IP-Adresse des Load Balancers verweisen.

Eine Liste der unterstützten Load Balancer finden Sie in der Übersicht zu Zertifikatmanager.

Ziele

In diesem Anleitung werden die folgenden Aufgaben erläutert:

  • Von Google verwaltete Zertifikate mit DNS-Autorisierung erstellen
  • Erstellen Sie eine Zertifikatzuordnung für alle Zertifikate.
  • Zertifikate mithilfe von DNS auf Ihrem Load Balancer bereitstellen.
  • Aktualisieren Sie die DNS-A- und AAAA-Einträge, sodass sie auf die IP-Adresse des Load Balancers verweisen.

Hinweis

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the Compute Engine, Certificate Manager APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  4. Install the Google Cloud CLI.

  5. Configure the gcloud CLI to use your federated identity.

    For more information, see Sign in to the gcloud CLI with your federated identity.

  6. 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 auszuführen:

  • Zertifikatmanager-Inhaber (roles/certificatemanager.owner)

    Erforderlich, um Zertifikatmanager-Ressourcen zu erstellen und zu verwalten.

  • Compute Load Balancer Admin (roles/compute.loadBalancerAdmin) oder Compute Network Admin (roles/compute.networkAdmin)

    Erforderlich, um HTTPS-Ziel-Proxys zu erstellen und zu verwalten.

  • DNS-Administrator (roles/dns.admin)

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

Hier finden Sie weitere Informationen:

Von Google verwaltete Zertifikate erstellen

Erstellen Sie die gleiche Anzahl von von Google verwalteten Zertifikaten mit DNS-Autorisierung (empfohlen) oder selbstverwalteten Zertifikaten wie Drittanbieterzertifikate. Bevor Sie die Zertifikate erstellen, erstellen Sie eine DNS-Autorisierung und fügen Sie den CNAME-Eintrag der autoritativen DNS-Zone für Ihre Domain hinzu.

In diesem Abschnitt werden die Schritte und Befehle zum Erstellen von globalen von Google verwalteten Zertifikaten aufgeführt. Informationen zum Erstellen regionaler oder regionenübergreifender von Google verwalteter Zertifikate finden Sie unter Von Google verwaltetes Zertifikat erstellen.

DNS-Autorisierung erstellen

Eine DNS-Autorisierung deckt nur einen einzelnen Domainnamen ab. Sie müssen für jeden Domainnamen, den Sie mit dem Zielzertifikat verwenden möchten, eine separate DNS-Autorisierung erstellen.

Wenn Sie eine DNS-Autorisierung für ein Platzhalterzertifikat wie *.myorg.example.com erstellen, konfigurieren Sie die DNS-Autorisierung für die übergeordnete Domain, z. B. myorg.example.com.

Console

Sie können beim Erstellen eines Zertifikats eine DNS-Autorisierung erstellen oder eine vorhandene DNS-Autorisierung anhängen. Weitere Informationen finden Sie unter Von Google verwaltetes Zertifikat erstellen, das auf die DNS-Autorisierung verweist.

gcloud

Sie können zwei Arten von DNS-Autorisierungen erstellen: FIXED_RECORD oder PER_PROJECT_RECORD. Weitere Informationen finden Sie unter DNS-Autorisierung.

DNS-Autorisierung mit FIXED_RECORD

Verwenden Sie den folgenden gcloud certificate-manager dns-authorizations create-Befehl, um eine DNS-Autorisierung vom Typ FIXED_RECORD zu erstellen:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=[FIXED_RECORD]

Ersetzen Sie Folgendes:

  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • DOMAIN_NAME: der Name der Zieldomain, für die Sie diese DNS-Autorisierung erstellen. Der Domainname muss ein voll qualifizierter Domainname sein, z. B. myorg.example.com.

Prüfen Sie die erstellte DNS-Autorisierung FIXED_RECORD mit dem Befehl gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

Die entsprechende Ausgabe sieht etwa so aus: Suchen Sie in der Ausgabe nach dem Abschnitt dnsResourceRecord. Suchen Sie den CNAME-Eintrag und fügen Sie die Details des Eintrags (data, name und type) zu Ihrer DNS-Konfiguration hinzu.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge.myorg.example.com.
  type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

DNS-Autorisierung vom Typ PER_PROJECT_RECORD

Verwenden Sie den folgenden gcloud certificate-manager dns-authorizations create-Befehl, um eine PER_PROJECT_RECORD-DNS-Autorisierung zu erstellen:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=PER_PROJECT_RECORD

Ersetzen Sie Folgendes:

  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • DOMAIN_NAME: der Name der Zieldomain, für die Sie diese DNS-Autorisierung erstellen. Der Domainname muss ein voll qualifizierter Domainname sein, z. B. myorg.example.com.

Prüfen Sie die erstellte DNS-Autorisierung PER_PROJECT_RECORD mit dem Befehl gcloud certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

Die entsprechende Ausgabe sieht etwa so aus: Suchen Sie in der Ausgabe nach dem Abschnitt dnsResourceRecord. Suchen Sie den CNAME-Eintrag und fügen Sie die Details des Eintrags (data, name und type) zu Ihrer DNS-Konfiguration hinzu.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge_ujmmovf2vn55tgye.myorg.example.com
  type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Terraform

Zum Erstellen einer DNS-Autorisierung können Sie eine google_certificate_manager_dns_authorization-Ressource verwenden.

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
  description = "The default dns auth"
  domain      = local.domain
  labels = {
    "terraform" : true
  }
}

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

API

Senden Sie zum Erstellen einer DNS-Autorisierung eine POST-Anfrage an die Methode dnsAuthorizations.create:

POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID Ihres Projekts in Google Cloud .
  • AUTHORIZATION_NAME: der Name der DNS-Autorisierung.
  • DOMAIN_NAME: der Name der Zieldomain, für die Sie diese DNS-Autorisierung erstellen. Der Domainname muss ein voll qualifizierter Domainname sein, z. B. myorg.example.com.

Ein von Google verwaltetes Zertifikat erstellen, das auf die DNS-Autorisierung verweist

So erstellen Sie ein globales, von Google verwaltetes Zertifikat, das auf die in den vorherigen Schritten erstellte DNS-Autorisierung verweist:

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 Zertifikatsname 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 Bereich die Option Standard aus.

  7. Wählen Sie für Zertifikatstyp die Option Von Google verwaltetes Zertifikat erstellen aus.

  8. Wählen Sie für Typ der Zertifizierungsstelle 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. Der Domainname kann auch ein Platzhalter-Domainname sein, z. B. *.example.com.

  10. Wählen Sie unter Autorisierungstyp die Option DNS-Autorisierung aus.

    Auf der Seite werden die DNS-Autorisierungen der Domainnamen aufgeführt. Wenn ein Domainname keine zugehörige DNS-Autorisierung hat, gehen Sie so vor, um eine zu erstellen:

    1. Klicken Sie auf Fehlende DNS-Autorisierung erstellen.
    2. Geben Sie im Feld DNS-Autorisierungsname den Namen der DNS-Autorisierung an. Der Standard-DNS-Autorisierungstyp ist FIXED_RECORD. Wenn Sie Zertifikate in mehreren Projekten unabhängig voneinander verwalten möchten, setzen Sie ein Häkchen bei Autorisierung pro Projekt.
    3. Klicken Sie auf DNS-Autorisierung erstellen.
  11. Geben Sie im Feld Labels 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

Führen Sie den Befehl certificate-manager certificates create mit dem Flag dns-authorizations aus, um ein globales, von Google verwaltetes Zertifikat mit DNS-Autorisierung zu erstellen:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAME,*.DOMAIN_NAME" \
    --dns-authorizations="AUTHORIZATION_NAMES"

Ersetzen Sie Folgendes:

  • CERTIFICATE_NAME: der Name des Zertifikats.
  • DOMAIN_NAME: der Name der Zieldomain. Der Domainname muss ein voll qualifizierter Domainname wie myorg.example.com oder eine Platzhalterdomain wie *.myorg.example.com sein. Das Präfix (*.) steht für ein Platzhalterzertifikat.
  • AUTHORIZATION_NAMES: eine durch Kommas getrennte Liste der Namen von DNS-Autorisierungen, die Sie für das Zertifikat erstellt haben.

Terraform

Verwenden Sie eine google_certificate_manager_certificate-Ressource.

resource "google_certificate_manager_certificate" "root_cert" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "The wildcard cert"
  managed {
    domains = [local.domain, "*.${local.domain}"]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id
    ]
  }
  labels = {
    "terraform" : true
  }
}

API

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

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: ID Ihres Projekts in Google Cloud .
  • CERTIFICATE_NAME: der Name des Zertifikats.
  • DOMAIN_NAME: der Name der Zieldomain. Der Domainname muss ein voll qualifizierter Domainname wie myorg.example.com oder eine Platzhalterdomain wie *.myorg.example.com sein. Das Präfix „Sternchen Punkt“ (*.) kennzeichnet ein Platzhalterzertifikat.
  • AUTHORIZATION_NAMES: eine durch Kommas getrennte Liste der Namen von DNS-Autorisierungen.

CNAME-Eintrag zu DNS-Konfiguration hinzufügen

Wenn Sie eine DNS-Lösung eines Drittanbieters verwenden, um Ihr DNS zu verwalten, finden Sie in der Dokumentation Informationen dazu, wie Sie den CNAME-Eintrag der DNS-Konfiguration hinzufügen. Wenn SieGoogle Cloud zum Verwalten Ihres DNS verwenden, führen Sie die Schritte in diesem Abschnitt aus.

Console

So erstellen Sie einen Datensatz:

  1. Rufen Sie in der Google Cloud Console die Seite DNS-Zonen auf.

    Cloud DNS-Zonen aufrufen

  2. Klicken Sie auf den Namen der DNS-Zone, der Sie den Eintrag hinzufügen möchten.

  3. Klicken Sie auf der Seite Zonendetails auf Standard hinzufügen.

  4. Geben Sie auf der Seite Eintragssatz erstellen im Feld DNS-Name die Subdomain der DNS-Zone ein.

    Achten Sie bei der Eingabe des Subdomainnamens darauf, dass der Subdomainname, einschließlich des ausgegrauten Texts, der im Feld DNS-Name angezeigt wird, mit dem vollständigen Wert des Felds dnsResourceRecord.name übereinstimmt, wie er in der Ausgabe des Befehls gcloud certificate-manager dns-authorizations describe angezeigt wird.

    Betrachten Sie die folgenden Beispiele:

    • Wenn der Wert des Felds dnsResourceRecord.name _acme-challenge.myorg.example.com. ist und der ausgegraute Text im Feld DNS-Name .example.com. ist, geben Sie _acme-challenge.myorg ein.

    • Wenn der Wert des Felds dnsResourceRecord.name _acme-challenge.myorg.example.com. ist und der ausgegraute Text im Feld DNS-Name .myorg.example.com. ist, geben Sie _acme-challenge ein.

    • Wenn der Wert des Felds dnsResourceRecord.name _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. ist und der ausgegraute Text im Feld DNS-Name .myorg.example.com. ist, geben Sie _acme-challenge_ujmmovf2vn55tgye ein.

  5. Wählen Sie im Feld Ressourceneintragstyp die Option CNAME aus.

  6. Geben Sie im Feld TTL einen positiven numerischen Wert für die Gültigkeitsdauer des Ressourceneintrags ein. Dies ist die Zeit, die der Eintrag im Cache gespeichert werden kann.

  7. Wählen Sie in der Liste TTL-Einheit die Zeiteinheit aus, z. B. 30 minutes.

  8. Geben Sie im Feld Kanonischer Name den vollständigen Wert des Felds dnsResourceRecord.data ein, wie er in der Ausgabe des Befehls gcloud certificate-manager dns-authorizations describe angezeigt wird.

  9. Wenn Sie zusätzliche Informationen eingeben möchten, klicken Sie auf Element hinzufügen.

  10. Klicken Sie auf Erstellen.

gcloud

Wenn Sie eine DNS-Autorisierung erstellen, gibt der gcloud CLI-Befehl den entsprechenden CNAME-Eintrag zurück. So fügen Sie den CNAME-Eintrag Ihrer DNS-Konfiguration in der DNS-Zone der Zieldomain hinzu:

  1. Starten Sie die Transaktion des DNS-Eintrags:

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    Ersetzen Sie DNS_ZONE_NAME durch den Namen der Ziel-DNS-Zone.

  2. Fügen Sie den CNAME-Eintrag zur Ziel-DNS-Zone hinzu:

    gcloud dns record-sets transaction add CNAME_RECORD \
        --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \
        --ttl="30" \
        --type="CNAME" \
        --zone="DNS_ZONE_NAME"
    

    Ersetzen Sie Folgendes:

    • CNAME_RECORD: der vollständige Datenwert des CNAME-Eintrags, der vom Google Cloud CLI-Befehl zurückgegeben wurde, mit dem die entsprechende DNS-Autorisierung erstellt wurde.
    • VALIDATION_SUBDOMAIN_NAME: die Präfix-Subdomain der DNS-Zone, z. B. _acme-challenge. Sie können den Namen aus dem gcloud certificate-manager dns-authorizations describe-Befehlsprotokoll kopieren, wie unter DNS-Autorisierung erstellen beschrieben.
    • DOMAIN_NAME: der Name der Zieldomain. Der Domainname muss ein voll qualifizierter Domainname sein, z. B. myorg.example.com. Sie dürfen den Punkt am Ende nach dem Zieldomainnamen nicht weglassen.
    • DNS_ZONE_NAME: der Name der Ziel-DNS-Zone.

    Weitere Informationen zu den Unterschieden zwischen FIXED_RECORD- und PER_PROJECT_RECORD-DNS-Autorisierungen finden Sie in den folgenden Beispielen. Der einzige Unterschied zwischen den beiden Beispielen ist der Wert des Flags --name.

    DNS-Autorisierung mit FIXED_RECORD

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    

    DNS-Autorisierung vom Typ PER_PROJECT_RECORD

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge_ujmmovf2vn55tgye.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    
  3. Führen Sie die Transaktion des DNS-Eintrags aus, um die Änderungen zu speichern:

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    Ersetzen Sie DNS_ZONE_NAME durch den Namen der Ziel-DNS-Zone.

Terraform

Wenn Sie den CNAME-Eintrag Ihrer DNS-Konfiguration hinzufügen möchten, können Sie eine google_dns_record_set-Ressource verwenden.

resource "google_dns_record_set" "cname" {
  name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
  managed_zone = google_dns_managed_zone.default.name
  type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
  ttl          = 300
  rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
}

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 die Spalte Status für das Zertifikat.

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 von Google verwalteten Zielzertifikats.

Die Ausgabe sieht etwa so aus:

createTime: '2021-10-20T12:19:53.370778666Z'
expireTime: '2022-05-07T05:03:49Z'
managed:
  authorizationAttemptInfo:
  - domain: myorg.example.com
    state: AUTHORIZED
  dnsAuthorizations:
    - projects/myProject/locations/global/dnsAuthorizations/myCert
  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, ob Sie den CNAME-Eintrag korrekt in Ihre DNS-Konfiguration eingefügt haben.

Weitere Schritte zur Fehlerbehebung finden Sie unter Fehlerbehebung im Zertifikatmanager.

Zertifikat auf einem Load Balancer bereitstellen

Wenn Sie ein globales, von Google verwaltetes Zertifikat bereitstellen möchten, folgen Sie den Schritten in diesem Abschnitt und stellen Sie das Zertifikat mithilfe einer Zertifikatszuordnung bereit.

Wenn Sie das von Google verwaltete Zertifikat auf einem regionalen externen Application Load Balancer oder regionalen internen Application Load Balancer oder auf einem regionenübergreifenden internen Application Load Balancer bereitstellen möchten, hängen Sie es direkt an den Ziel-Proxy an.

Zertifikatzuordnung erstellen

Erstellen Sie eine Zertifikatszuordnung, die auf den Zertifikatszuordnungseintrag verweist, der mit Ihrem Zertifikat verknüpft ist:

gcloud

Verwenden Sie zum Erstellen einer Zertifikatzuordnung den Befehl gcloud certificate-manager maps create:

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 Zertifikatszuordnungseintrag und verknüpfen Sie ihn mit Ihrem Zertifikat und Ihrer Zertifikatszuordnung:

gcloud

Verwenden Sie zum Erstellen eines Zertifikatszuordnungseintrags den Befehl gcloud certificate-manager maps entries create:

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: Name des Zertifikatszuordnungseintrags.
  • CERTIFICATE_MAP_NAME: Name der Zertifikatszuordnung, mit der der Zertifikatszuordnungseintrag verknüpft ist.
  • CERTIFICATE_NAME: der Name des Zertifikats, das Sie mit dem Zertifikatszuordnungseintrag verknüpfen möchten.
  • HOSTNAME: Hostname, den Sie mit dem Zertifikatszuordnungseintrag verknüpfen möchten.

    Wenn Sie ein Zertifikat erstellen möchten, das sowohl eine Platzhalterdomain als auch eine Stammdomain abdeckt, geben Sie den Hostnamen mit einer Stammdomain und einem Platzhalter an, z. B. example.com und *.example.com. Außerdem müssen Sie zwei Zertifikatszuordnungseinträge angeben – einen für example.com und einen für *.example.com.

Terraform

Verwenden Sie zum Erstellen eines Zertifikatszuordnungseintrags mit einer Stammdomain eine google_certificate_manager_certificate_map_entry-Ressource.

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
}

Verwenden Sie eine google_certificate_manager_certificate_map_entry-Ressource, um einen Zertifikatszuordnungseintrag mit einer Platzhalterdomain zu erstellen.

resource "google_certificate_manager_certificate_map_entry" "second_entry" {
  name        = "${local.name}-second-entity-${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 Zertifikatszuordnungseintrag aktiv ist

Prüfen Sie, ob der Zertifikatszuordnungseintrag aktiv ist, bevor Sie die entsprechende Zertifikatszuordnung an den Ziel-Proxy anhängen.

Verwenden Sie den Befehl gcloud certificate-manager maps entries describe, um den Zertifikatszuordnungseintrag zu prüfen:

gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME"

Ersetzen Sie Folgendes:

  • CERTIFICATE_MAP_ENTRY_NAME: Name des Zertifikatszuordnungseintrags.
  • CERTIFICATE_NAME: der Name des Zertifikats, das Sie mit dem Zertifikatszuordnungseintrag verknüpfen möchten.

Die Ausgabe sieht 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 Ziel-Proxy anhängen

Sie können die Zertifikatszuordnung an einen neuen oder vorhandenen Ziel-Proxy anhängen.

Console

Wenn der Zielproxy Teil eines vorhandenen Load Balancers ist, können Sie die Zertifikatszuordnung anhängen, indem Sie die Frontend-Konfiguration des Load Balancers bearbeiten.

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

    Load Balancing aufrufen

  2. Klicken Sie auf den Namen des Load Balancers, den Sie aktualisieren möchten, und dann auf Bearbeiten.

  3. Klicken Sie auf Frontend-Konfiguration und wählen Sie die Frontend-IP-Adresse und die Portkonfiguration aus, die Sie bearbeiten möchten.

  4. Wenn Zertifikats-Repository auswählen angezeigt wird, wählen Sie Zertifikatszuordnung verwenden aus.

  5. Wählen Sie in der Liste Zertifikatszuordnung auswählen Ihre Zertifikatszuordnung aus.

  6. Klicken Sie auf Fertig und anschließend auf Aktualisieren.

gcloud

Verwenden Sie den Befehl gcloud compute target-https-proxies create, um die Zertifikatszuordnung an einen neuen Ziel-Proxy 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: Name des Ziel-Proxys.
  • CERTIFICATE_MAP_NAME: Name der Zertifikatszuordnung, die auf den Zertifikatszuordnungseintrag und das zugehörige Zertifikat verweist.
  • URL_MAP: der Name des URL-Mappings

Verwenden Sie den Befehl gcloud compute target-https-proxies update, um die Zertifikatszuordnung an einen vorhandenen Ziel-HTTPS-Proxy anzuhängen. Wenn Sie den Namen des vorhandenen Ziel-Proxys nicht kennen, rufen Sie die Seite Zielproxys auf und notieren Sie sich den Namen des Ziel-Proxys.

gcloud compute target-https-proxies update PROXY_NAME \
    --certificate-map="CERTIFICATE_MAP_NAME" \
    --global

Führen Sie nach dem Erstellen oder Aktualisieren des Ziel-Proxys den folgenden Befehl aus, um ihn zu prüfen:

gcloud compute target-https-proxies list

Terraform

Wenn Sie die Zertifikatszuordnung an den Zielproxy anhängen möchten, können Sie eine google_compute_target_https_proxy-Ressource verwenden.

Wenn Sie beim Konfigurieren eines Zielproxys TLS-Zertifikate (SSL) direkt und auch über eine Zertifikatszuordnung anhängen, verwendet der Proxy die Zertifikate, auf die die Zertifikatszuordnung verweist, und ignoriert die direkt angehängten TLS-Zertifikate (SSL).

Bereitgestellte Zertifikate testen

Testen Sie für jedes bereitgestellte Zertifikat die Verbindung zu jeder Domain, die vom Zertifikat auf der IP-Adresse Ihres Load Balancers abgedeckt wird. Verwenden Sie dazu den folgenden Befehl:

openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443

Ersetzen Sie Folgendes:

  • DOMAIN_NAME: der Name der Zieldomain
  • IP_ADDRESS: die IP-Adresse Ihres Load Balancers

Weitere Informationen zum Testen der Verbindung finden Sie unter Mit OpenSSL testen.

DNS-Einträge aktualisieren

Stellen Sie den Traffic von Ihrem Drittanbieterdienst auf Cloud Load Balancing um. Weitere Informationen finden Sie unter DNS-A- und AAAA-Einträge aktualisieren, sodass sie auf die IP-Adresse des Load Balancers verweisen.

Nächste Schritte