Von Google verwaltete SSL-Zertifikate verwenden

Auf dieser Seite wird erläutert, wie Sie von Google verwaltete SSL-Zertifikate erstellen und verwenden.

Von Google verwaltete SSL-Zertifikate sind Zertifikate, die Google Cloud für Ihre Domains abruft, verwaltet und automatisch erneuert. Diese Domain Validation-Zertifikate (DV) unterstützen mehrere Hostnamen in jedem Zertifikat.

Für bestimmte Arten von Google Cloud-Load-Balancern ist ein SSL-Zertifikat erforderlich, darunter:

Sie können verwaltete SSL-Zertifikate auch mit Google Kubernetes Engine verwenden. Weitere Informationen finden Sie unter Von Google verwaltete SSL-Zertifikate verwenden.

Sie können ein von Google verwaltetes Zertifikat vor, während oder nach der Erstellung des Load-Balancers erstellen. Auf dieser Seite wird davon ausgegangen, dass Sie das Zertifikat vor oder nach der Erstellung des Load-Balancers erstellen, nicht währenddessen. Informationen zum Erstellen des Zertifikats während der Erstellung des Load-Balancers finden Sie auf den Anleitungsseiten des Load-Balancers.

Mehrere Domains

Es werden mehrere alternative Antragstellernamen unterstützt. Jedes von Google verwaltete SSL-Zertifikat unterstützt bis zu der maximalen Anzahl an Domains pro von Google verwaltetem SSL-Zertifikat.

Wenn Sie mehr als die maximale Anzahl an Domains haben, müssen Sie mehrere von Google verwaltete Zertifikate anfragen. Wenn Sie beispielsweise versuchen, ein von Google verwaltetes Zertifikat mit (das Maximum + 1) Domains zu erstellen, stellt Google keine Zertifikate aus. Stattdessen müssen Sie zwei oder mehr von Google verwaltete Zertifikate erstellen und explizit angeben, welche Domains mit den einzelnen Zertifikaten verknüpft sind.

Google Cloud implementiert Server Name Indication (SNI) wie in RFC 6066 definiert.

Wenn Google ein verwaltetes Zertifikat verlängert, das mehrere Domains umfasst, und die Domains oder Subdomains nicht auf die IP-Adresse des Load-Balancers verweisen, schlägt die Verlängerung fehl. Vergewissern Sie sich nach der Bereitstellung Ihres verwalteten Zertifikats, dass alle Domains und Subdomains weiterhin auf die IP-Adresse des Load-Balancers verweisen. So lassen sich Fehler bei der Verlängerung vermeiden.

Vorbereitung

Berechtigungen

Sie können dieser Anleitung nur folgen, wenn Sie die Berechtigung zum Erstellen und Ändern von SSL-Zertifikaten in Ihrem Projekt haben. Dazu benötigen Sie eine der folgenden Rollen oder Berechtigungen:

Schritt 1: Erstellen Sie ein von Google verwaltetes SSL-Zertifikat

Sie können ein von Google verwaltetes Zertifikat vor, während oder nach der Erstellung des Load-Balancers erstellen. Beim Erstellen eines Load-Balancers in der Cloud Console können Sie die Cloud Console für die Erstellung des Zertifikats verwenden. Alternativ können Sie das Zertifikat vor oder nach dem Erstellen des Load-Balancers erstellen. In diesem Schritt erfahren Sie, wie Sie ein Zertifikat erstellen, das Sie später einem oder mehreren Load-Balancern hinzufügen können.

Wenn Sie Ihr von Google verwaltetes SSL-Zertifikat bereits erstellt haben, können Sie diesen Schritt überspringen.

Console

Sie können globale SSL-Zertifikate auf dem Tab Zertifikate der Seite Load-Balancing verwenden.

  1. Rufen Sie in der Google Cloud Console die Seite "Zertifikate" auf.
    Zur Seite "Zertifikate"
  2. Klicken Sie auf SSL-Zertifikat erstellen.
  3. Geben Sie einen Namen und optional eine Beschreibung für das Zertifikat ein.
  4. Wählen Sie Von Google verwaltetes Zertifikat erstellen aus.
  5. Fügen Sie die Domains hinzu.
  6. Klicken Sie auf Erstellen.

gcloud

Verwenden Sie den Befehl gcloud compute ssl-certificates create, um ein globales von Google verwaltetes SSL-Zertifikat für einen externen HTTP(S)-Load-Balancer oder einen SSL-Proxy-Load-Balancer zu erstellen:

gcloud compute ssl-certificates create CERTIFICATE_NAME \
    --description=DESCRIPTION \
    --domains=DOMAIN_LIST \
    --global

Ersetzen Sie die folgenden Platzhalter durch gültige Werte:

  • CERTIFICATE_NAME: ein Name für das globale SSL-Zertifikat
  • DESCRIPTION: eine Beschreibung für das globale SSL-Zertifikat
  • DOMAIN_LIST: ein einzelner Domainname oder eine durch Kommas getrennte Liste von Domainnamen, die für dieses Zertifikat verwendet werden sollen

API

Erstellen Sie die Methode sslCertificates.insert für von Google verwalteten Zertifikatsressourcen und ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/sslCertificates
{
  "name": "ssl-certificate-name",
  "managed": {
    "domains": [
      "www.example.com"
    ]
  },
  "type": "MANAGED"
}

Status des von Google verwalteten SSL-Zertifikats prüfen

Console

Sie können den Status Ihrer globalen SSL-Zertifikate auf dem Tab Zertifikate der Seite Load-Balancing prüfen.

  1. Rufen Sie in der Google Cloud Console die Seite "Zertifikate" auf.
    Zur Seite "Zertifikate"
  2. (Optional) Filtern Sie die Liste der SSL-Zertifikate.
  3. Prüfen Sie die Spalte Status.
  4. Klicken Sie für weitere Details auf den Zertifikatsnamen.

gcloud

Mit den Befehlen gcloud compute können Sie den Status Ihres von Google verwalteten Zertifikats ermitteln. Nachdem Sie den entsprechenden Befehl ausgeführt haben, beachten Sie Folgendes:

  • Den verwalteten Status.
  • Den Domainstatus.

Verwenden Sie den Befehl gcloud compute ssl-certificates list mit dem Flag --global, um Ihre von Google verwalteten SSL-Zertifikate aufzulisten.

gcloud compute ssl-certificates list \
   --global

Sie können den Befehl gcloud compute ssl-certificates describe verwenden und CERTIFICATE_NAME ersetzen:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
   --global \
   --format="get(name,managed.status, managed.domainStatus)"

Zu diesem Zeitpunkt sind der Zertifikatstatus und der Domainstatus PROVISIONING. Nachdem Sie alle Schritte auf dieser Seite ausgeführt haben, ändert sich der Status in ACTIVE.

Weitere Informationen zum Status finden Sie auf der Seite zur Fehlerbehebung.

Schritt 2: Load-Balancer erstellen oder aktualisieren

Um ACTIVE zu werden, muss das von Google verwaltete SSL-Zertifikat einem Load-Balancer zugeordnet sein, und zwar dem Zielproxy des Load-Balancers.

Nachdem Sie Ihr SSL-Zertifikat erstellt haben und es sich im Status PROVISIONING befindet, können Sie es beim Erstellen des Load-Balancers verwenden, wie in den folgenden Anleitungen beschrieben:

Sie können auch einen vorhandenen Load-Balancer aktualisieren, wie hier beschrieben:

Console

Wenn Sie einen externen HTTP(S)-Load-Balancer oder SSL-Proxy-Load-Balancer über die Google Cloud Console aktualisieren, verknüpft Google Cloud Ihr SSL-Zertifikat automatisch mit dem richtigen Zielproxy.

  1. Öffnen Sie in der Google Cloud Console die Seite "Load-Balancing".
    Zur Seite "Load-Balancing"
  2. Klicken Sie auf den Namen des Load-Balancers.
  3. Klicken Sie auf Bearbeiten .
  4. Klicken Sie auf Front-End-Konfiguration.
  5. Klicken Sie auf das richtige Front-End (muss HTTPS, HTTP/2, SSL sein).
  6. Klicken Sie auf Zusätzliche Zertifikate und wählen Sie Ihr von Google verwaltetes Zertifikat aus der Drop-down-Liste aus.
  7. Klicken Sie auf Erstellen.

gcloud

Wenn Sie ein SSL-Zertifikat mit dem Ziel-HTTPS-Proxy für einen externen HTTP(S)-Load-Balancer verknüpfen möchten, verwenden Sie den Befehl gcloud compute target-https-proxies update mit den Flags --global-ssl-certificates und --global:

gcloud compute target-https-proxies update TARGET_PROXY_NAME \
    --ssl-certificates SSL_CERTIFICATE_LIST \
    --global-ssl-certificates \
    --global

Wenn Sie ein SSL-Zertifikat mit dem SSL-Zielproxy für einen SSL-Proxy-Load-Balancer verknüpfen möchten, verwenden Sie den Befehl gcloud compute target-ssl-proxies update:

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --ssl-certificates SSL_CERTIFICATE_LIST

Ersetzen Sie die Platzhalter durch gültige Werte:

  • TARGET_PROXY_NAME: der Name des Zielproxys des Load-Balancers
  • SSL_CERTIFICATE_LIST: eine durch Kommas getrennte Liste von SSL-Zertifikaten

Jeder HTTPS-Zielproxy oder SSL-Zielproxy muss auf mindestens ein SSL-Zertifikat verweisen. Ein Zielproxy kann auf mehr als ein SSL-Zertifikat verweisen. Weitere Informationen finden Sie unter Zielpools und Zielproxys in den Kontingenten und Limits für Load-Balancing-Ressourcen.

Schritt 3: Zielproxy-Verknüpfung prüfen

Nachdem Sie den Load-Balancer erstellt oder aktualisiert haben, können Sie mit dem folgenden Befehl prüfen, ob das SSL-Zertifikat dem Zielproxy des Load-Balancers zugeordnet ist.

Für externe HTTPS-Load-Balancer:

gcloud compute target-https-proxies describe target-https-proxy-name \
    --global \
    --format="get(sslCertificates)"

Für SSL-Proxy-Load-Balancer:

gcloud compute target-ssl-proxies describe target-ssl-proxy-name \
    --format="get(sslCertificates)"

Zu diesem Zeitpunkt lautet der Status Ihres von Google verwalteten Zertifikats möglicherweise noch PROVISIONING. Google Cloud arbeitet mit der Zertifizierungsstelle zusammen, um das Zertifikat auszustellen. Die Bereitstellung eines von Google verwalteten Zertifikats kann bis zu 60 Minuten dauern.

Schritt 4: DNS-A- und AAAA-Einträge aktualisieren, sodass sie auf die IP-Adresse des Load-Balancers verweisen

Fügen Sie die DNS-A-Einträge (für IPv4) und die DNS-AAAA-Einträge (für IPv6) für Ihre Domains und Subdomains auf der Website Ihres Registrators, DNS-Hosts oder Internetanbieters (abhängig davon, wo Ihre DNS-Einträge verwaltet werden) hinzu oder aktualisieren Sie sie dort. Die Einträge müssen auf die IP-Adresse verweisen, die der Weiterleitungsregel oder den Weiterleitungsregeln des Load-Balancers zugeordnet ist.

Wenn Sie Cloud DNS und Google Domains verwenden, richten Sie Ihre Domains ein und aktualisieren Sie Ihre Nameserver.

Wenn Sie mehrere Domains für ein einzelnes von Google verwaltetes Zertifikat verwenden, müssen Sie DNS-Einträge für alle Domains und Subdomains hinzufügen oder aktualisieren, sodass sie alle auf die IP-Adresse Ihres Load-Balancers verweisen.

Nachdem die DNS-Weitergabe abgeschlossen wurde, können Sie die Einrichtung mit dem Befehl dig prüfen. Angenommen, Ihre Domain ist www.example.com. Führen Sie folgenden dig-Befehl aus:

dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31748
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.example.com.           IN  A

;; ANSWER SECTION:
www.example.com.        1742    IN  CNAME   www.example.com.edgekey.net.
www.example.com.edgekey.net. 21330 IN   CNAME   www.example.com.edgekey.net.globalredir.akadns.net.
www.example.com.edgekey.net.globalredir.akadns.net. 3356 IN CNAME   e6858.dsce9.akamaiedge.net.
e6858.dsce9.akamaiedge.net. 212 IN  A   203.0.113.5

;; Query time: 43 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jun 03 16:54:44 PDT 2020
;; MSG SIZE  rcvd: 193

In diesem Beispiel ist 203.0.113.5 die IP-Adresse Ihres Load-Balancers.

Führen Sie außerdem den folgenden Befehl noch einmal aus:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
    --format="get(managed.domainStatus)"

Wenn der Status Ihrer Domain FAILED_NOT_VISIBLE lautet, lesen Sie den Abschnitt zum Domainstatus des von Google verwalteten SSL-Zertifikats auf der Seite zur Fehlerbehebung.

Schritt 5: Mit OpenSSL testen

Nachdem der Zertifikat- und Domainstatus aktiv ist, kann es bis zu 30 Minuten dauern, bis der Load-Balancer beginnt, Ihr von Google verwaltetes SSL-Zertifikat zu verwenden.

Führen Sie zum Testen den folgenden OpenSSL-Befehl aus. Ersetzen Sie dabei DOMAIN durch Ihren DNS-Namen und IP_ADDRESS durch die IP-Adresse Ihres Load-Balancers.

echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error

Dieser Befehl gibt die Zertifikate aus, die der Load-Balancer dem Client anbietet. Neben anderen detaillierten Informationen sollte die Ausgabe die Zertifikatskette und Verify return code: 0 (ok) enthalten.

Von Google verwaltetes SSL-Zertifikat verlängern

Google Cloud stellt verwaltete Zertifikate bereit, die 90 Tage lang gültig sind. Etwa ein Monat vor Ablauf beginnt automatisch der Prozess zur Verlängerung des Zertifikats. Dazu wird eine Zertifizierungsstelle (Certificate Authority, CA) ausgewählt, die sich sowohl im CAA-DNS-Eintrag Ihrer Domain als auch in der CA-Liste befindet.

Für die Verlängerung wird möglicherweise eine andere Zertifizierungsstelle verwendet als die, mit der eine frühere Version Ihres von Google verwalteten Zertifikats ausgestellt wurde. Sie können die Zertifizierungsstelle bestimmen, die Google Cloud für Verlängerungen verwendet. Dafür muss der CAA-DNS-Eintrag (Certificate Authority Authorization) Ihrer Domain eine einzelne Zertifizierungsstelle aus der CA-Liste angeben, die die von Google verwalteten Zertifikate verwenden.

Wenn Google ein verwaltetes Zertifikat verlängert, das mehrere Domains umfasst, und die Domains oder Subdomains nicht auf die IP-Adresse des Load-Balancers verweisen, schlägt die Verlängerung fehl. Vergewissern Sie sich nach der Bereitstellung Ihres verwalteten Zertifikats, dass alle Domains und Subdomains weiterhin auf die IP-Adresse des Load-Balancers verweisen. So lassen sich Fehler bei der Verlängerung vermeiden.

Optionale Verfahren

Zertifizierungsstellen angeben, die das von Google verwaltete Zertifikat ausstellen dürfen

Geben Sie in Ihrer DNS-Serversoftware die Zertifizierungsstellen an, die Ihr von Google verwaltetes Zertifikat ausstellen dürfen. Erstellen oder ändern Sie dazu einen CAA-Eintrag so, dass pki.goog, letsencrypt.org oder beides enthalten ist. Wenn Sie keinen CAA-Eintrag haben, werden standardmäßig pki.goog und letsencrypt.org zugelassen.

DOMAIN. CAA 0 issue "pki.goog"
DOMAIN. CAA 0 issue "letsencrypt.org"

Der Support für letsencrypt.org-Zertifikate erfolgt auf Best-Effort-Basis. Die beste Zuverlässigkeit erzielen Sie, wenn Sie sowohl pki.goog als auch letsencrypt.org zulassen. Wenn Sie nur eine der CAs angeben, wird nur diese zum Erstellen und Erneuern des Zertifikats verwendet: Dieser Ansatz wird nicht empfohlen.

Wenn Sie Ihr Zertifikat erstellen, wählt Google Cloud entweder pki.goog oder letsencrypt.org aus und verwendet es, um Ihr Zertifikat auszustellen. Wenn Google Ihr Zertifikat verlängert, kann es von einer anderen Zertifizierungsstelle ausgestellt werden. Dies hängt von den Zertifizierungsstellen ab, die Sie im CAA-Eintrag angegeben haben (wenn Sie einen erstellt haben). Ihr Zertifikat kann in den folgenden Fällen durch eine andere Zertifizierungsstelle verlängert werden:

  • Sie haben keinen DNS-CAA-Eintrag für Ihre Domain.
  • Sie haben beide Zertifizierungsstellen in den DNS-CAA-Eintrag aufgenommen.

Weitere Informationen finden Sie im RFC CAA-DNS-Eintrag (Certification Authority Authorization).

Internationalisierte Domainnamen (Internationalized Domain Names, IDNs) werden von letsencrypt.org ausgestellt. Sie werden derzeit von pki.goog nicht unterstützt.

Wenn Sie Cloud DNS verwenden, lernen Sie, wie Sie einen Eintrag hinzufügen und setzen Sie das Flag --type auf CAA.

Vorhandenes SSL-Zertifikat ersetzen

So ersetzen Sie ein vorhandenes SSL-Zertifikat:

  1. Beginnen Sie mit dem Prozess zum Erstellen des von Google verwalteten SSL-Ersatzzertifikats. Beachten Sie, dass dieses Zertifikat zu diesem Zeitpunkt nicht AKTIV wird.

  2. Aktualisieren Sie den Zielproxy, sodass die Liste der referenzierten Zertifikate das SSL-Ersatzzertifikat zusammen mit den aktuellen SSL-Zertifikaten enthält. Die Schritte zum Aktualisieren des Zielproxys unterscheiden sich so:

  3. Warten Sie, bis die Bereitstellung des SSL-Ersatzzertifikats abgeschlossen ist. Dies kann bis zu 60 Minuten dauern. Wenn die Bereitstellung erfolgreich abgeschlossen wurde, lautet der Zertifikatstatus ACTIVE.

  4. Warten Sie weitere 30 Minuten, bis das Ersatzzertifikat sicher für alle Google Front Ends (GFEs) verfügbar ist.

  5. Aktualisieren Sie den Zielproxy, um das zu ersetzende SSL-Zertifikat aus der Liste der referenzierten Zertifikate zu entfernen. Die Schritte zum Aktualisieren eines Zielproxys unterscheiden sich so:

  6. Warten Sie zehn Minuten und prüfen Sie, ob der Load-Balancer das SSL-Ersatzzertifikat anstelle des alten verwendet.

  7. Optional können Sie die alte SSL-Zertifikatsressource löschen.

Wenn Sie das alte SSL-Zertifikat nicht löschen, bleibt es solange AKTIV, bis es abläuft.

Migration von selbstverwalteten SSL-Zertifikaten zu von Google verwalteten SSL-Zertifikaten

Wenn Sie einen Load-Balancer von der Verwendung selbstverwalteter SSL-Zertifikate zu von Google verwalteten SSL-Zertifikaten migrieren, müssen Sie die folgenden Schritte in dieser Reihenfolge ausführen:

  1. Erstellen Sie ein neues von Google verwaltetes Zertifikat.
  2. Ordnen Sie ein neues von Google verwaltetes Zertifikat dem richtigen Zielproxy zu, während die Zuordnung des Zielproxys zum vorhandenen selbstverwalteten Zertifikat beibehalten wird.
  3. Warten Sie bis der Status des von Google verwalteten Zertifikats ACTIVE ist.
  4. Warten Sie 30 Minuten, bis das neue Zertifikat an die bereitstellenden Google Front Ends (GFEs) übertragen wurde.
  5. Aktualisieren Sie den Zielproxy noch einmal und entfernen Sie das selbstverwaltete Zertifikat.

SSL-Zertifikate löschen

Achten Sie vor dem Löschen eines SSL-Zertifikats darauf, dass kein HTTPS- oder SSL-Zielproxy auf dieses Zertifikat verweist. Dafür haben Sie die beiden folgenden Möglichkeiten:

So löschen Sie ein oder mehrere SSL-Zertifikate:

Console

Sie können globale SSL-Zertifikate auf dem Tab Zertifikate der Seite Load-Balancing löschen.

  1. Rufen Sie in der Google Cloud Console die Seite "Zertifikate" auf.
    Zur Seite "Zertifikate"
  2. Wählen Sie das SSL-Zertifikat aus, das Sie löschen möchten.
  3. Klicken Sie auf Löschen.
  4. Klicken Sie zur Bestätigung noch einmal auf Löschen.

gcloud

Verwenden Sie zum Löschen eines globalen SSL-Zertifikats (für externe HTTP(S)-Load-Balancer oder SSL-Proxy-Load-Balancer) den Befehl gcloud compute ssl-certificates delete mit dem Befehl --global:

gcloud compute ssl-certificates delete CERTIFICATE_NAME \
    --global

Ersetzen Sie die Platzhalter durch gültige Werte:

  • CERTIFICATE_NAME: der Name des SSL-Zertifikats

Weitere Informationen