Configurare i certificati SSL (TLS)

Dopo aver creato uno o più servizi Media CDN , puoi emettere e collegare certificati SSL (TLS) per supportare la connettività sicura nei browser e nelle applicazioni mobile.

Emetti un certificato gestito

Per creare un certificato gestito e collegarlo al servizio Media CDN, devi:

  1. Dimostrare la proprietà ("autorizzazione") dei domini per cui vuoi emettere i certificati creando un token di verifica e aggiungendo un record DNS.
  2. Crea un certificato di tipo EDGE_CACHE con uno o più nomi di dominio in base a questa autorizzazione.
  3. Collega il certificato a uno o più servizi Edge Cache.

Devi disporre delle seguenti autorizzazioni Identity and Access Management per autorizzare, creare e collegare i certificati a un servizio Edge Cache:

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

Gli utenti che devono collegare un certificato esistente a un servizio Media CDN richiedono le autorizzazioni IAM certificatemanager.certs.get, certificatemanager.certs.list e certificatemanager.certs.use.

Prima di iniziare

Crea un'autorizzazione DNS

Prima di poter emettere certificati per un dominio, devi creare un'autorizzazione DNS per dimostrarne la proprietà. L'autorizzazione DNS utilizza la sfida DNS-01 ACME e ti consente di emettere un certificato prima di indirizzare il traffico rivolto agli utenti al servizio Edge Cache.

Imposta il valore di domain sul nome di dominio per cui intendi creare un certificato, come segue:

gcloud

Utilizza il comando gcloud certificate-manager dns-authorizations:

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

gcloud CLI restituisce una risposta con i dettagli del record DNS che devi aggiungere.

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"
}

Se utilizzi Cloud DNS per il tuo dominio, consulta i passaggi per aggiungere un nuovo record al dominio ospitato. Se utilizzi un altro provider DNS, consulta la documentazione per aggiungere un record CNAME.

  • Puoi ripetere questo passaggio per ogni dominio per cui devi emettere un certificato.
  • I certificati possono contenere più domini oppure puoi scegliere di emettere un certificato per dominio, a seconda delle esigenze. Dopo aver ottenuto l'autorizzazione per un dominio, puoi utilizzarla per emettere certificati.
  • Ti consigliamo di creare un numero inferiore di certificati totali, ognuno con tutti i nomi di dominio utilizzati per il tuo servizio. In questo modo, le prestazioni del client migliorano quando utilizzi più domini, perché i client possono usufruire più spesso della ripresa TLS.
  • Ogni servizio Edge Cache può fare riferimento a un massimo di cinque certificati. Emettendo un numero inferiore di certificati, puoi rimanere entro questo limite.

Se devi recuperare i valori dei record DNS in un secondo momento, invia una richiesta per authorizationName che hai fornito durante la creazione dell'autorizzazione DNS:

Crea un certificato

Dopo aver aggiunto il record DNS che dimostra la proprietà dei domini per cui vuoi creare un certificato, puoi inviare una richiesta di creazione del certificato.

L'elenco di dnsAuthorizations deve corrispondere ai nomi delle autorizzazioni esistenti create in precedenza nella procedura. Se vuoi aggiungere più domini allo stesso certificato, fornisci un elenco di domains[] e dnsAuthorizations[] corrispondenti quando invii la richiesta.

Per creare un certificato utilizzando un'autorizzazione per test.example.com denominata test-example-com:

gcloud

Utilizza il comando gcloud certificate-manager certificates:

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

Viene creato un certificato con ogni autorizzazione DNS nello stato AUTHORIZING e il certificato nello stato 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,
    ]
  }
}

Il completamento della creazione del certificato potrebbe richiedere alcuni minuti (fino a un'ora), a seconda di:

  • La velocità con cui il provider DNS propaga le modifiche alla configurazione.
  • Il numero di domini per cui stai tentando di convalidare e creare certificati.

Il campo state mostra lo stato attuale del certificato:

  • PROVISIONING : il provisioning del certificato è ancora in corso. Probabilmente perché la richiesta di creazione del certificato è stata inviata di recente.
  • FAILED : restituito dopo più tentativi di convalidare il dominio o emettere il certificato. Per i dettagli, consulta i campi provisioning_issue, authorization_attempt_info e failure_reason.
  • ACTIVE : il dominio è stato convalidato correttamente e il certificato è stato sottoposto a provisioning.

Per controllare lo stato del certificato:

gcloud

Utilizza il comando gcloud certificate-manager certificates:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

In questo esempio, l'autorizzazione DNS è AUTHORIZED e lo stato del certificato è 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'

Una volta che il certificato è ACTIVE, puoi collegarlo a un servizio Edge Cache.

Collega un certificato a un servizio

Dopo aver creato un certificato gestito, puoi associarlo a uno o più servizi Edge Cache. I certificati possono essere collegati a servizi esistenti e nuovi aggiornando l'elenco di edgeSslCertificates nel servizio.

Devi disporre delle seguenti autorizzazioni IAM per collegare i certificati a un servizio Edge Cache:

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

Per collegare un certificato a un servizio, completa i seguenti passaggi.

gcloud

Esegui il comando gcloud edge-cache services export per esportare il file YAML del servizio:

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

Modifica il file YAML esportato per aggiungere il certificato:

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

Esegui il comando gcloud edge-cache services import:

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

Output:

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

Il comando restituisce una descrizione del servizio, incluso l'elenco di edgeSslCertificates ora collegati:

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

Dopo aver aggiornato la configurazione, il certificato viene propagato a tutte le località perimetrali in pochi minuti. Per verificare che il certificato sia associato al servizio Edge Cache prima di apportare modifiche al DNS, puoi inviare una richiesta all'indirizzo IPv4 o IPv6 associato al servizio.

Sostituisci e rimuovi i certificati

I certificati possono essere aggiunti e rimossi aggiornando l'elenco dei certificati.

Quando utilizzi il flag --edge-ssl-certificate di gcloud CLI, i certificati vengono aggiunti solo all'elenco dei certificati esistenti e non sostituiti. In questo modo, non rimuoverai accidentalmente un certificato valido e attivo.

Per rimuovere il certificato test-example-com dal nostro servizio nell'esempio seguente, puoi esportare il servizio in YAML utilizzando i comandi di importazione ed esportazione

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

I seguenti comandi mostrano come esportare il servizio, rimuovere il riferimento al certificato e importare il servizio aggiornato.

gcloud

Utilizza il comando gcloud edge-cache services:

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

Rimuovi i certificati che non vuoi più che il servizio utilizzi utilizzando l'editor di testo che preferisci:

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

Salva il file modificato e poi importa il servizio aggiornato:

gcloud

Utilizza il comando gcloud edge-cache services:

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

Non esiste un limite al numero di servizi a cui può essere associato un certificato e ogni servizio Edge Cache può fare riferimento a un massimo di cinque certificati.

Certificati autogestiti

Puoi caricare i tuoi certificati in Media CDN se hai casi d'uso specifici che lo richiedono.

Per caricare un certificato e la relativa chiave in Certificate Manager:

gcloud

Utilizza il comando gcloud certificate-manager certificates. Assicurati di specificare --scope=EDGE_CACHE per i certificati associati a 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].

Dopo aver caricato il certificato, puoi collegarlo a un EdgeCacheService come faresti con un certificato gestito.

Risolvi i problemi relativi all'emissione dei certificati

Consulta la guida alla risoluzione dei problemi per scoprire come risolvere gli errori comuni di autorizzazione ed emissione dei certificati.

Passaggi successivi