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:
- 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.
- Erstellen Sie ein Zertifikat vom Typ
EDGE_CACHE
mit einem oder mehreren Domainnamen basierend auf dieser Autorisierung. - Hängen Sie das Zertifikat an einen oder mehrere Edge-Cache-Dienste an.
Sie benötigen die folgenden IAM-Berechtigungen (Identity and Access Management), 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
, certificatemanager.certs.list
und certificatemanager.certs.use
.
Hinweise
- Sie benötigen einen registrierten Domainnamen, für den Sie öffentliche DNS-Einträge aktualisieren können.
- Übersicht über SSL-Zertifikate.
DNS-Autorisierung erstellen
Zuerst müssen Sie eine DNS-Autorisierung erstellen, um die Inhaberschaft der Domain nachzuweisen, bevor Sie Zertifikate dafür ausstellen können. Bei der DNS-Autorisierung wird die DNS-01-ACME-Challenge verwendet. So können Sie ein Zertifikat ausstellen, bevor Sie nutzerorientierten Traffic an Ihren Edge Cache-Dienst weiterleiten.
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'
Terraform
Wenn Sie Cloud DNS für Ihre Domain verwenden, finden Sie hier eine Anleitung zum Hinzufügen eines neuen Eintrags. Wenn Sie einen anderen DNS-Anbieter verwenden, lesen Sie in der zugehörigen Dokumentation nach, wie Sie einen CNAME-Eintrag hinzufügen.
- 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. Sie können aber auch nach Bedarf ein Zertifikat pro Domain ausstellen. Nachdem Sie eine Autorisierung für eine Domain erhalten haben, können Sie damit Zertifikate ausstellen.
- Wir empfehlen, weniger Zertifikate zu erstellen, die jeweils alle für Ihren Dienst verwendeten Domainnamen enthalten. Dadurch wird die Clientleistung bei Verwendung mehrerer Domains verbessert, 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 Werte des DNS-Eintrags später abrufen müssen, stellen Sie eine Anfrage für die authorizationName
, die Sie beim Erstellen der DNS-Autorisierung angegeben haben:
Zertifikat erstellen
Nachdem Sie den DNS-Eintrag hinzugefügt haben, der die Inhaberschaft der Domains belegt, für die Sie ein Zertifikat erstellen möchten, können Sie eine Zertifikaterstellungsanfrage stellen.
Die Liste der dnsAuthorizations
muss mit den Namen der vorhandenen Autorisierungen übereinstimmen, die Sie zuvor erstellt haben. Wenn Sie demselben Zertifikat mehrere Domains hinzufügen möchten, geben Sie in der Anfrage eine Liste von domains[]
und entsprechenden dnsAuthorizations[]
an.
So erstellen Sie ein Zertifikat mit einer Autorisierung für test.example.com
mit dem Namen 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].
Terraform
Die Erstellung des Zertifikats kann einige Minuten bis zu einer Stunde dauern. Das hängt von den folgenden Faktoren ab:
- Wie schnell Ihr DNS-Anbieter Konfigurationsänderungen weitergibt.
- Wie viele Domains Sie bestätigen und für wie viele Sie Zertifikate erstellen möchten.
Im Feld state
wird der aktuelle Status des Zertifikats angezeigt:
- BEREITSTELLUNG – Das Zertifikat wird noch bereitgestellt. Das liegt wahrscheinlich daran, dass die Anfrage zum Erstellen des Zertifikats erst vor Kurzem 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
undfailure_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 ist die DNS-Autorisierung AUTHORIZED
und der Zertifikatsstatus 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'
Nachdem das Zertifikat ACTIVE
wurde, können Sie es an einen Edge-Cache-Dienst anhängen.
Zertifikat an einen Dienst anhängen
Nachdem Sie ein verwaltetes Zertifikat erstellt haben, können Sie es einem oder mehreren Ihrer Edge-Cache-Dienste zuordnen.
Zertifikate können sowohl an vorhandene als auch an neue Dienste angehängt werden, indem die Liste der 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
So hängen Sie einem Dienst ein Zertifikat an:
gcloud
Führen Sie den Befehl gcloud edge-cache services export
aus, um die YAML-Datei Ihres 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. Bevor Sie DNS-Änderungen vornehmen, können Sie testen, ob das Zertifikat mit Ihrem Edge Cache-Dienst verknüpft ist. Senden Sie dazu eine Anfrage an die IPv4- oder IPv6-Adresse, die mit Ihrem Dienst verknüpft ist.
Zertifikate ersetzen und entfernen
Zertifikate können durch Aktualisieren der Liste der Zertifikate hinzugefügt und entfernt werden.
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.
Wenn Sie das test-example-com
-Zertifikat aus unserem Dienst im folgenden Beispiel entfernen möchten, können Sie Ihren Dienst mit den Import- und Exportbefehlen in 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, den Zertifikatsverweis 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].
Es gibt keine Beschränkung für die Anzahl der Dienste, denen ein Zertifikat zugeordnet werden kann. 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 Sie bestimmte Anwendungsfälle haben, die dies erfordern.
So laden Sie ein Zertifikat und den zugehörigen Schlüssel in den Zertifikatmanager hoch:
gcloud
Führen Sie den Befehl gcloud certificate-manager certificates
aus. Geben Sie --scope=EDGE_CACHE
für Zertifikate an, 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 an einen EdgeCacheService anhängen, wie Sie es mit einem verwalteten Zertifikat tun würden.
Fehlerbehebung bei der Ausstellung von Zertifikaten
Informationen zur Behebung häufiger Fehler bei der Zertifikatautorisierung und ‑ausstellung finden Sie in der Anleitung zur Fehlerbehebung.
Nächste Schritte
- Alle HTTP-Anfragen an HTTPS weiterleiten, um die Kommunikation standardmäßig zu verschlüsseln
- Anfragelogs mit Logging ansehen
- Signierte Anfragen konfigurieren, um Ihre Inhalte zu schützen
- Cache-Schlüssel und TTLs optimieren, um die Cache-Trefferquoten zu verbessern
- Den erweiterten Routenabgleich konfigurieren und zusätzliche Ursprünge hinzufügen