SSL/TLS-Zertifikate konfigurieren

Nachdem Sie Media CDN-Dienst(e) erstellt haben, können Sie SSL-Zertifikate (TLS) ausstellen und anhängen, um eine sichere Verbindung in Browsern und mobilen Anwendungen zu ermöglichen.

Verwaltetes Zertifikat ausstellen

So erstellen Sie ein verwaltetes Zertifikat und hängen es an Ihren Media CDN-Dienst an:

  1. Demonstrieren Sie die Inhaberschaft („Autorisierung“) der Domains, für die Sie Zertifikate ausstellen möchten, indem Sie ein Challenge-Token erstellen und einen DNS-Eintrag hinzufügen.
  2. Erstellen Sie ein Zertifikat vom Typ EDGE_CACHE mit einem oder mehreren Domainnamen, die auf dieser Autorisierung basieren.
  3. Hängen Sie dieses Zertifikat an einen oder mehrere Edge-Cache-Dienste an.

Sie benötigen die folgenden Berechtigungen für die Identitäts- und Zugriffsverwaltung, um Zertifikate zu autorisieren, zu erstellen und an einen Edge-Cache-Dienst anzuhängen:

  • certificatemanager.certs.create
  • certificatemanager.certs.get
  • certificatemanager.certs.list
  • certificatemanager.certs.use
  • certificatemanager.dnsauthorizations.create
  • certificatemanager.dnsauthorizations.get
  • certificatemanager.dnsauthorizations.list
  • certificatemanager.dnsauthorizations.use

Nutzer, die ein vorhandenes Zertifikat an einen Media CDN-Dienst anhängen müssen, benötigen die IAM-Berechtigungen certificatemanager.certs.get und certificatemanager.certs.list.

Hinweis

DNS-Autorisierung erstellen

Bevor Sie Zertifikate für die Domain ausstellen können, müssen Sie zuerst eine DNS-Autorisierung erstellen. Die DNS-Autorisierung verwendet die DNS-01-ACME-Herausforderung und ermöglicht Ihnen, ein Zertifikat auszustellen, bevor nutzerseitiger Traffic an Ihren Edge-Cache-Dienst weitergeleitet wird.

Legen Sie den Wert von domain auf den Domainnamen fest, für den Sie ein Zertifikat erstellen möchten:

gcloud

Führen Sie den Befehl gcloud certificate-manager dns-authorizations aus:

gcloud certificate-manager dns-authorizations create DOMAIN_NAME_AUTH \
    --domain="DOMAIN_NAME"
gcloud certificate-manager dns-authorizations describe DOMAIN_NAME_AUTH

Die gcloud CLI gibt eine Antwort mit den Details des DNS-Eintrags zurück, den Sie hinzufügen müssen.

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

Wenn Sie Cloud DNS für Ihre Domain verwenden, lesen Sie die Schritte zum Hinzufügen eines neuen Eintrags zu Ihrer gehosteten Domain. Wenn Sie einen anderen DNS-Anbieter verwenden, lesen Sie die Dokumentation zum Hinzufügen eines CNAME-Eintrags.

  • Sie können diesen Schritt für jede Domain wiederholen, für die Sie ein Zertifikat ausstellen müssen.
  • Zertifikate können mehrere Domains enthalten oder Sie können nach Bedarf ein Zertifikat pro Domain ausstellen. Nachdem Sie eine Autorisierung für eine Domain haben, können Sie damit Zertifikate ausstellen.
  • Wir empfehlen, weniger Gesamtzertifikate mit jeweils allen für Ihren Dienst verwendeten Domainnamen zu erstellen. Dies verbessert die Clientleistung bei Verwendung mehrerer Domains, da Clients häufiger von der TLS-Wiederaufnahme profitieren können.
  • Jeder Edge Cache-Dienst kann auf bis zu fünf Zertifikate verweisen. Wenn Sie weniger Zertifikate ausstellen, können Sie dieses Limit einhalten.

Wenn Sie die DNS-Eintragswerte später abrufen müssen, stellen Sie eine Anfrage für den authorizationName, den Sie beim Erstellen der DNS-Autorisierung angegeben haben:

Zertifikat erstellen

Nachdem Sie den DNS-Eintrag hinzugefügt haben, der die Inhaberschaft der Domains angibt, für die Sie ein Zertifikat erstellen möchten, können Sie eine Anfrage zur Zertifikaterstellung senden.

Die Liste der dnsAuthorizations muss mit den Namen vorhandener Autorisierungen übereinstimmen, die Sie zuvor im Prozess erstellt haben. Wenn Sie demselben Zertifikat mehrere Domains hinzufügen möchten, geben Sie beim Senden der Anfrage eine Liste mit domains[] und einem übereinstimmenden dnsAuthorizations[] an.

So erstellen Sie ein Zertifikat mit einer Autorisierung für test.example.com namens test-example-com:

gcloud

Führen Sie den Befehl gcloud certificate-manager certificates aus:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAME" \
    --dns-authorizations="DOMAIN_NAME_AUTH" \
    --scope=EDGE_CACHE

Dadurch wird ein Zertifikat mit jeder DNS-Autorisierung im Status AUTHORIZING und das Zertifikat im Status PROVISIONING erstellt:

Create request issued for: [DOMAIN_NAME]
Waiting for operation [projects/my-project/locations/global/operations/operatio
n-1613425627385-5bb66ed644e91-3e2a2f1f-71979cf8] to complete...done.
Created certificate [CERTIFICATE_NAME].

Es kann einige Minuten (bis zu einer Stunde) dauern, bis die Zertifikaterstellung abgeschlossen ist. Dies hängt von folgenden Faktoren ab:

  • Wie schnell Ihr DNS-Anbieter Konfigurationsänderungen weiterleitet.
  • Die Anzahl der Domains, für die Sie Zertifikate validieren und erstellen möchten.

Das Feld state zeigt den aktuellen Status des Zertifikats an:

  • BEREITSTELLUNG – Das Zertifikat wird noch bereitgestellt. Dies liegt wahrscheinlich daran, dass die Anfrage zur Zertifikaterstellung erst kürzlich gestellt wurde.
  • FEHLGESCHLAGEN: wird zurückgegeben, wenn die Domain validiert oder das Zertifikat ausgestellt wurde. Weitere Informationen finden Sie in den Feldern provisioning_issue, authorization_attempt_info und failure_reason.
  • AKTIV – die Domain wurde erfolgreich validiert und das Zertifikat wurde bereitgestellt.

So prüfen Sie den Status des Zertifikats:

gcloud

Führen Sie den Befehl gcloud certificate-manager certificates aus:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

In diesem Beispiel lautet die DNS-Autorisierung AUTHORIZED und der Zertifikatstatus ACTIVE:

createTime: '2021-02-07T20:03:39.867762684Z'
expireTime: '2021-03-09T19:20:41Z'
managed:
  authorizationAttemptInfo:
  - domain: DOMAIN_NAME
    state: AUTHORIZED
  dnsAuthorizations:
  - projects/111111111111/locations/global/dnsAuthorizations/test-example-com
  domains:
  - DOMAIN_NAME
  state: ACTIVE
name: projects/my-project/locations/global/certificates/test-example-com
scope: EDGE_CACHE
subjectAlternativeNames:
- DOMAIN_NAME
updateTime: '2021-02-07T20:03:40.297242738Z'

Wenn das Zertifikat ACTIVE ist, können Sie es an einen Edge-Cache-Dienst anhängen.

Zertifikate an einen Dienst anhängen

Nachdem Sie ein verwaltetes Zertifikat erstellt haben, können Sie es mit einem oder mehreren Ihrer Edge-Cache-Dienste verknüpfen. Zertifikate können sowohl an vorhandene als auch an neue Dienste angehängt werden, indem die Liste edgeSslCertificates im Dienst aktualisiert wird.

Sie benötigen die folgenden IAM-Berechtigungen, um Zertifikate an einen Edge Cache-Dienst anzuhängen:

  • certificatemanager.certs.get
  • certificatemanager.certs.list
  • certificatemanager.certs.use
  • networkservices.edgeCacheServices.get
  • networkservices.edgeCacheServices.list
  • networkservices.edgeCacheServices.update

Führen Sie die folgenden Schritte aus, um ein Zertifikat an einen Dienst anzuhängen.

gcloud

Führen Sie den Befehl gcloud edge-cache services export aus, um die YAML-Datei des Dienstes zu exportieren:

gcloud edge-cache services export MY_SERVICE \
    --destination=my-service.yaml

Bearbeiten Sie die exportierte YAML-Datei, um Ihr Zertifikat hinzuzufügen:

name: MY_SERVICE
edgeSslCertificates:
- projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Führen Sie den Befehl gcloud edge-cache services import aus:

gcloud edge-cache services import MY_SERVICE \
    --source=my-service.yaml

Ausgabe:

Request issued for: [MY_SERVICE]
Updated service [MY_SERVICE]

Der Befehl gibt eine Beschreibung Ihres Dienstes zurück, einschließlich der Liste der jetzt angehängten edgeSslCertificates:

  name: MY_SERVICE
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Nachdem Sie die Konfiguration aktualisiert haben, wird das Zertifikat innerhalb von Minuten an alle Edge-Standorte weitergegeben. Um zu testen, ob das Zertifikat mit Ihrem Edge-Cache-Dienst verknüpft ist, bevor Sie DNS-Änderungen vornehmen, können Sie eine Anfrage an die IPv4- oder IPv6-Adresse senden, die mit Ihrem Dienst verknüpft ist.

Zertifikate ersetzen und entfernen

Um Zertifikate hinzuzufügen und zu entfernen, aktualisieren Sie die Liste der Zertifikate.

Bei Verwendung des Flags --edge-ssl-certificate der gcloud CLI werden Zertifikate nur an die Liste der vorhandenen Zertifikate angehängt und nicht ersetzt. Dadurch wird verhindert, dass Sie versehentlich ein gültiges, aktives Zertifikat entfernen.

Im folgenden Beispiel können Sie das Zertifikat test-example-com aus unserem Dienst entfernen, indem Sie Ihren Dienst mithilfe der Import- und Exportbefehle nach YAML exportieren.

  name: my-service
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/test-example-com
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Die folgenden Befehle zeigen, wie Sie den Dienst exportieren, die Zertifikatsreferenz entfernen und den aktualisierten Dienst importieren.

gcloud

Führen Sie den Befehl gcloud edge-cache services aus:

gcloud edge-cache services export MY_SERVICE --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/MY_SERVICE] to 'my-service.yaml'.

Entfernen Sie mit Ihrem bevorzugten Texteditor die Zertifikate, die der Dienst nicht mehr verwenden soll:

  name: MY_SERVICE
  edgeSslCertificates:
  - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME

Speichern Sie die geänderte Datei und importieren Sie dann den aktualisierten Dienst:

gcloud

Führen Sie den Befehl gcloud edge-cache services aus:

gcloud edge-cache services import MY_SERVICE --source=my-service.yaml
Request issued for: [MY_SERVICE]
Updated service [MY_SERVICE].

Die Anzahl der Dienste, mit denen ein Zertifikat verknüpft werden kann, ist nicht begrenzt. Jeder Edge Cache-Dienst kann auf bis zu fünf Zertifikate verweisen.

Selbstverwaltete Zertifikate

Sie können Ihre eigenen Zertifikate in Media CDN hochladen, wenn es bestimmte Anwendungsfälle gibt.

So laden Sie ein Zertifikat und den zugehörigen Schlüssel in Certificate Manager hoch:

gcloud

Führen Sie den Befehl gcloud certificate-manager certificates aus. Achten Sie darauf, dass Sie --scope=EDGE_CACHE für Zertifikate angeben, die mit Media CDN verknüpft sind.

gcloud certificate-manager certificates create stream-example-com \
    --certificate-file=CERT.pem \
    --private-key-file=PRIVATE_KEY.pem \
    --scope=EDGE_CACHE
Create request issued for: [stream-example-com]
Created certificate [stream-example-com].

Nachdem das Zertifikat hochgeladen wurde, können Sie es wie ein verwaltetes Zertifikat an einen EdgeCacheService anhängen.

Fehlerbehebung bei der Ausstellung von Zertifikaten

In der Anleitung zur Fehlerbehebung erfahren Sie, wie Sie häufige Fehler bei der Autorisierung und Ausstellung von Zertifikaten beheben können.

Nächste Schritte