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 basierend auf dieser Autorisierung.
  3. 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.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.

Hinweis

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

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "example-dns-auth"
  description = "example dns authorization "
  domain      = "test.example.com"
}

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

resource "google_certificate_manager_certificate" "default" {
  name        = "example-dns-cert"
  description = "example dns certificate"
  scope       = "EDGE_CACHE"
  managed {
    domains = [
      google_certificate_manager_dns_authorization.default.domain,
    ]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id,
    ]
  }
}

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_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 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.get
  • certificatemanager.certs.list
  • certificatemanager.certs.use
  • networkservices.edgeCacheServices.get
  • networkservices.edgeCacheServices.list
  • networkservices.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