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_CACHEmit einem oder mehreren Domainnamen basierend auf dieser Autorisierung. - Hängen Sie dieses 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.createcertificatemanager.certs.getcertificatemanager.certs.listcertificatemanager.certs.usecertificatemanager.dnsauthorizations.createcertificatemanager.dnsauthorizations.getcertificatemanager.dnsauthorizations.listcertificatemanager.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.
Hinweis
- 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. Die DNS-Autorisierung verwendet die DNS-01 ACME Challenge und ermöglicht es Ihnen, ein Zertifikat auszustellen, bevor Sie nutzerseitigen 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 unter Neue Einträge zu einer gehosteten Domain hinzufügen eine Anleitung. Wenn Sie einen anderen DNS-Anbieter verwenden, lesen Sie in der 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 haben, können Sie damit Zertifikate ausstellen.
- Wir empfehlen, weniger Zertifikate zu erstellen, die jeweils alle Domainnamen enthalten, die für Ihren Dienst verwendet werden. 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, bleiben Sie innerhalb dieses Limits.
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 Domain(s) nachweist, 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 beim Stellen der Anfrage eine Liste von domains[] und übereinstimmenden 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
Je nach den folgenden Faktoren kann es einige Minuten bis zu einer Stunde dauern, bis die Zertifikaterstellung abgeschlossen ist:
- Wie schnell Ihr DNS-Anbieter Konfigurationsänderungen weitergibt.
- Wie viele Domains Sie validieren und für wie viele Domains 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 Zertifikaterstellungsanfrage 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_infoundfailure_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 ist, 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 Sie die Liste der edgeSslCertificates im Dienst aktualisieren.
Sie benötigen die folgenden IAM-Berechtigungen, um Zertifikate an einen Edge-Cache-Dienst anzuhängen:
certificatemanager.certs.getcertificatemanager.certs.listcertificatemanager.certs.usenetworkservices.edgeCacheServices.getnetworkservices.edgeCacheServices.listnetworkservices.edgeCacheServices.update
So hängen Sie ein Zertifikat an einen Dienst 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 SERVICE_NAME \
--destination=my-service.yaml
Bearbeiten Sie die exportierte YAML-Datei, um Ihr Zertifikat hinzuzufügen:
name: SERVICE_NAME 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 SERVICE_NAME \
--source=my-service.yaml
Ausgabe:
Request issued for: [SERVICE_NAME] Updated service [SERVICE_NAME]
Der Befehl gibt eine Beschreibung Ihres Dienstes zurück, einschließlich der Liste der jetzt angehängten edgeSslCertificates:
name: SERVICE_NAME edgeSslCertificates: - projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME
Nachdem Sie die Konfiguration aktualisiert haben, wird das Zertifikat innerhalb weniger Minuten an alle Edge-Standorte weitergegeben. Wenn Sie testen möchten, ob das Zertifikat Ihrem Edge-Cache-Dienst zugeordnet ist, bevor Sie DNS-Änderungen vornehmen, können Sie eine Anfrage an die IPv4- oder IPv6-Adresse stellen, die Ihrem Dienst zugeordnet ist.
Zertifikate ersetzen und entfernen
Zertifikate können hinzugefügt und entfernt werden, indem Sie die Liste der Zertifikate aktualisieren.
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 im folgenden
Beispiel aus unserem Dienst entfernen möchten, können Sie Ihren Dienst mit den
Befehlen zum Importieren und Exportieren 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 SERVICE_NAME --destination=my-service.yaml
Exported [projects/my-project/locations/global/edgeCacheServices/SERVICE_NAME] to 'my-service.yaml'.
Entfernen Sie mit Ihrem bevorzugten Texteditor die Zertifikate, die der Dienst nicht mehr verwenden soll:
name: SERVICE_NAME 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 SERVICE_NAME --source=my-service.yaml
Request issued for: [SERVICE_NAME] Updated service [SERVICE_NAME].
Es gibt keine Begrenzung 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 dies für bestimmte Anwendungsfälle erforderlich ist.
So laden Sie ein Zertifikat und den zugehörigen Schlüssel in Zertifikatmanager hoch:
gcloud
Führen Sie den Befehl gcloud certificate-manager certificates aus. Geben Sie für Zertifikate, die Media CDN zugeordnet sind, --scope=EDGE_CACHE an.
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.
Nächste Schritte
- Alle HTTP-Anfragen an HTTPS weiterleiten um die Kommunikation standardmäßig zu verschlüsseln
- Anfragelogs ansehen mit Logging
- 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