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 DV-Zertifikate, die von Google Cloud für Ihre Domains abgerufen und verwaltet werden. Sie unterstützen mehrere Hostnamen in jedem Zertifikat und Google verlängert die Zertifikate automatisch.

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 eine der Domains oder Subdomains in einem verwalteten Zertifikat nicht auf die IP-Adresse des Load-Balancers verweist, schlägt der Verlängerungsprozess fehl. Achten Sie darauf, dass alle Ihre Domains und Subdomains auf die IP-Adresse des Load-Balancers verweisen, um Fehler bei der Verlängerung zu vermeiden.

Hinweis

Berechtigungen

Damit Sie dieser Anleitung folgen können, müssen Sie in Ihrem Projekt SSL-Zertifikate erstellen und ändern können. Dies ist möglich, wenn eine der folgenden Aussagen zutrifft:

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 den Tab "Zertifikate" auf.
    Zum Tab "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 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

Zum Ermitteln des Status Ihres von Google verwalteten Zertifikats können Sie gcloud compute-Befehle verwenden. Nachdem Sie den entsprechenden Befehl ausgeführt haben, beachten Sie Folgendes:

  • Den verwalteten Status.
  • Den Domainstatus.

Verwenden Sie zum Auflisten Ihrer von Google verwalteten SSL-Zertifikate den Befehl gcloud compute ssl-certificates list mit dem Flag --global.

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. Wenn Sie die Schritte auf dieser Seite ausgeführt haben, ändern sich die Status zu 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 das SSL-Zertifikat erstellt haben und es den Status PROVISIONING hat, können Sie es während der Erstellung 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:

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 Ihren Load-Balancer erstellt oder aktualisiert haben, können Sie dafür sorgen, dass das SSL-Zertifikat dem Zielproxy des Load-Balancers zugeordnet ist.

Wenn Sie den Namen des Zielproxys nicht kennen, verwenden Sie gcloud compute target-https-proxies list und gcloud compute target-ssl-proxies list-Befehle zum Auflisten der Zielproxys in Ihrem Projekt.

Prüfen Sie die Verbindung zwischen dem SSL-Zertifikat und dem Zielproxy. Dazu führen Sie folgenden Befehl aus.

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

Ihre DNS-Einträge können auf der Website Ihres Registrators, DNS-Hosts oder ISPs verwaltet werden. Wenn Ihre DNS-Einträge verwaltet werden, müssen Sie die DNS-A-Einträge (für IPv4) und DNS-AAAA-Einträge (für IPv6) für Ihre Domains und Subdomains hinzufügen oder aktualisieren.

Achten Sie darauf, dass die Datensätze 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 in einem von Google verwalteten Zertifikat haben, fügen Sie DNS-Einträge für alle Domains und Subdomains hinzu oder aktualisieren Sie sie. Sie müssen alle auf die IP-Adresse des 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:
;; flags: ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL:

;; PSEUDOSECTION:
; EDNS: version: 0, flags:; udp:
;; SECTION:
;www.example.com.

;; SECTION:
www.example.com.   www.example.com.edgekey.net.
www.example.com.edgekey.net.   www.example.com.edgekey.net.globalredir.akadns.net.
www.example.com.edgekey.net.globalredir.akadns.net.   e6858.dsce9.akamaiedge.net.
e6858.dsce9.akamaiedge.net.   203.0.113.5

;; time:
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 16:54:44
;;  rcvd: 31748 qr rd 1 OPT 512 QUESTION IN A ANSWER 1742 IN CNAME 21330 IN CNAME 3356 IN CNAME 212 IN A Query 43 msec Wed Jun 03 PDT 2020 MSG SIZE 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 sowohl im CAA-DNS-Eintrag Ihrer Domain als auch in der CA-Liste enthalten ist.

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 eine der Domains oder Subdomains in einem verwalteten Zertifikat nicht auf die IP-Adresse des Load-Balancers verweist, schlägt der Verlängerungsprozess fehl. Achten Sie darauf, dass alle Ihre Domains und Subdomains auf die IP-Adresse des Load-Balancers verweisen, um Fehler bei der Verlängerung zu vermeiden.

Optionale Verfahren

Die Zertifizierungsstellen angeben, die Ihr von Google verwaltetes Zertifikat ausstellen können

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: Diese Vorgehensweise wird jedoch 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 in den RFC, CAA-DNS-Eintrag.

letsencrypt.org gibt internationalisierte Domainnamen (IDNs) aus. pki.goog unterstützt derzeit keine IDNs.

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. Dieses Zertifikat wird zu diesem Zeitpunkt nicht mehr AKTIV.

  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. Nach Abschluss der Bereitstellung wird der Zertifikatsstatus in ACTIVE geändert.

  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. Aktualisieren Sie den Zielproxy noch einmal, indem Sie die alte SSL-Zertifikatsressource entfernen. Sie können die SSL-Zertifikatsressource löschen, wenn sie von keinem Zielproxy referenziert wird.

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. Sie können die Zertifikatsressource löschen, wenn sie von keinem Zielproxy referenziert wird.

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 Flag --global:

gcloud compute ssl-certificates delete CERTIFICATE_NAME \
    --global

Ersetzen Sie die Platzhalter durch gültige Werte:

  • CERTIFICATE_NAME: der Name des SSL-Zertifikats

Nächste Schritte