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 Ihr Media CDN an: müssen Sie Folgendes tun:

  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. zu dieser Autorisierung erhalten.
  3. Hängen Sie dieses Zertifikat an einen oder mehrere Edge-Cache-Dienste an.

Sie benötigen die folgenden Berechtigungen für Identity and Access Management zum Autorisieren, Erstellen und Zertifikate an einen Edge-Cache-Dienst anhä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 ein Media CDN Dienst erfordert die certificatemanager.certs.get, certificatemanager.certs.list und certificatemanager.certs.use IAM-Berechtigungen

Hinweise

DNS-Autorisierung erstellen

Zuerst müssen Sie eine DNS-Autorisierung erstellen, um die Inhaberschaft für bevor Sie Zertifikate für die Domain ausstellen können. Die DNS-Autorisierung verwendet der DNS-01 ACME Damit können Sie ein Zertifikat ausstellen, bevor Sie nutzerseitigen Traffic mit Ihrem Edge-Cache-Dienst verknüpfen.

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, lesen Sie den Abschnitt die Schritte zum Hinzufügen eines neuen Eintrags mit Ihrer gehosteten Domain verknüpfen. Wenn Sie einen anderen DNS-Anbieter verwenden, wenden Sie sich an dessen Dokumentation zum Hinzufügen eines CNAME-Eintrags.

  • Sie können diesen Schritt für jede Domain wiederholen, die Sie benötigen, um ein Zertifikat erhalten.
  • Zertifikate können mehrere Domains enthalten oder Sie können eine Zertifikat pro Domain. Nachdem Sie eine Autorisierung für eine können Sie damit Zertifikate ausstellen.
  • Wir empfehlen, insgesamt weniger Zertifikate zu erstellen, die jeweils alle Domainnamen, die für Ihren Dienst verwendet werden. Dies verbessert die Kundenleistung, wenn mehrere Domains verwenden, da Clients von der TLS-Wiederaufnahme mehr profitieren können oft.
  • Jeder Edge-Cache-Dienst kann auf bis zu fünf Zertifikate. Indem Sie weniger Zertifikate ausstellen, können Sie diesen Zeitraum einhalten Limit

Wenn Sie die DNS-Eintragswerte zu einem späteren Zeitpunkt abrufen möchten, stellen Sie eine Anfrage für die authorizationName, die Sie beim Erstellen des DNS angegeben haben Autorisierung:

Zertifikat erstellen

Nachdem Sie den DNS-Eintrag hinzugefügt haben, der die Inhaberschaft der von Ihnen für das Sie ein Zertifikat erstellen möchten, können Sie eine Anfrage zur Zertifikatserstellung ausstellen.

Die Liste der dnsAuthorizations muss mit den Namen vorhandener Elemente übereinstimmen. Autorisierungen, die Sie zuvor erstellt haben. Wenn Sie mehrere Domains mit demselben Zertifikat: Liste mit domains[] und übereinstimmenden dnsAuthorizations[] fest.

Zum Erstellen eines Zertifikats 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 mit jeder DNS-Autorisierung im AUTHORIZING ein Zertifikat erstellt. und das Zertifikat mit dem Status PROVISIONING:

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,
    ]
  }
}

Es kann einige Minuten (bis zu einer Stunde) dauern, bis das Zertifikat erstellt wird abgeschlossen sein, abhängig von Folgendem:

  • Die Geschwindigkeit, mit der Ihr DNS-Anbieter Konfigurationsänderungen überträgt.
  • Die Anzahl der Domains, für die Sie Zertifikate validieren und erstellen möchten.

Im Feld state wird der aktuelle Status des Zertifikats angezeigt:

  • BEREITSTELLUNG – Das Zertifikat wird noch bereitgestellt. Dieses liegt wahrscheinlich daran, dass die Anfrage zur Zertifikatserstellung erst vor Kurzem gestellt wurde.
  • FEHLGESCHLAGEN: wird zurückgegeben, wenn die Domain validiert oder das Zertifikat ausgestellt wurde. Weitere Informationen finden Sie in den provisioning_issue, authorization_attempt_info- und failure_reason-Felder.
  • 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 das Zertifikat ist 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'

Sobald das Zertifikat den Status ACTIVE hat, können Sie es an ein Edge-Cache-Dienst

Zertifikat an einen Dienst anhängen

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

Zum Anhängen benötigen Sie die folgenden IAM-Berechtigungen Zertifikate an einen Edge-Cache-Dienst senden:

  • 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:

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 mit edgeSslCertificates jetzt angehängt:

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

Nachdem Sie die Konfiguration aktualisiert haben, wird das Zertifikat an alle Edge-Geräte weitergegeben in wenigen Minuten an. Um zu prüfen, ob das Zertifikat mit Ihrem Edge-Cache-Dienst, bevor Sie DNS-Änderungen vornehmen, können Sie eine Anfrage für die mit Ihrem Dienst verknüpfte IPv4- oder IPv6-Adresse.

Zertifikate ersetzen und entfernen

Sie können Zertifikate hinzufügen und entfernen, 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.

So entfernen Sie das Zertifikat test-example-com aus unserem Dienst auf können Sie Ihren Dienst mithilfe der import- und export-befehle

  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 und das Zertifikat entfernen. und importieren Sie den aktualisierten Dienst.

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, die einem Zertifikat zugeordnet werden können, 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 Sie für bestimmte Anwendungsfälle.

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. Achten Sie darauf, geben Sie --scope=EDGE_CACHE für Zertifikate an, die mit Media CDN.

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].

Nach dem Hochladen des Zertifikats können Sie an einen EdgeCacheService anhängen wie ein verwaltetes Zertifikat.

Fehlerbehebung bei der Ausstellung von Zertifikaten

Weitere Informationen finden Sie in der Anleitung zur Fehlerbehebung. wie Sie häufige Fehler bei der Autorisierung und Ausstellung von Zertifikaten beheben.

Nächste Schritte