Configurazione dei certificati SSL (TLS)

Dopo aver creato un servizio Media CDN (o servizi), puoi emettere e collegare certificati SSL (TLS) Supportano la connettività sicura nei browser e nelle applicazioni mobile.

Emetti un certificato gestito

Per creare un certificato gestito e collegarlo a Media CDN devi seguire questi passaggi:

  1. Dimostrare la proprietà ("autorizzazione") dei domini a cui si intende emettere i certificati mediante la creazione di un token di verifica e l'aggiunta di un DNS record.
  2. Crea un certificato di tipo EDGE_CACHE con uno o più nomi di dominio basati su tale autorizzazione.
  3. Collega il certificato a uno o più servizi cache perimetrale.

Devi disporre delle seguenti autorizzazioni di Identity and Access Management per autorizzare, creare e collega i certificati a un servizio di cache perimetrale:

  • 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 CDN multimediale richiedono certificatemanager.certs.get, certificatemanager.certs.list e certificatemanager.certs.use Autorizzazioni IAM.

Prima di iniziare

Crea un'autorizzazione DNS

Innanzitutto, devi creare un'autorizzazione DNS per dimostrare di essere il proprietario di il dominio prima di poter emettere certificati. L'autorizzazione DNS utilizza il controller DNS-01 ACME verifica ed è possibile emettere un certificato prima di indirizzare il traffico rivolto agli utenti al servizio Edge Cache.

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

gcloud

Usa 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, vedi i passaggi per aggiungere un nuovo record al dominio ospitato. Se utilizzi un altro provider DNS, consulta il suo documentazione per l'aggiunta di un record CNAME.

  • Puoi ripetere questo passaggio per ogni dominio per il quale devi inviare un certificato.
  • I certificati possono contenere più domini oppure puoi scegliere di emettere un per dominio, se necessario. Dopo aver ottenuto l'autorizzazione per un dominio, puoi usarlo per emettere certificati.
  • Ti consigliamo di creare un numero inferiore di certificati totali, ciascuno con tutte le i nomi di dominio utilizzati per il servizio. Questo migliora il rendimento del cliente quando utilizzando più domini perché i client possono trarre vantaggio dalla ripresa del TLS spesso.
  • Ogni servizio di cache perimetrale può fare riferimento a un massimo di cinque certificati. Emettendo meno certificati, puoi rimanere entro questo limite.

Se devi recuperare i valori del record DNS in un secondo momento, effettua una richiesta per il valore authorizationName che hai fornito durante la creazione del DNS autorizzazione:

Crea un certificato

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

L'elenco di dnsAuthorizations deve corrispondere ai nomi degli elementi esistenti le autorizzazioni create in precedenza durante il processo. Se vuoi aggiungere più elementi domini allo stesso certificato, fornisci un elenco di domains[] e i domini corrispondenti dnsAuthorizations[] quando effettui la richiesta.

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

gcloud

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

Potrebbero essere necessari alcuni minuti (e fino a un'ora) prima che la creazione del certificato completa in base a quanto segue:

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

Il campo state mostra lo stato attuale del certificato:

  • PROVISIONING: è ancora in corso il provisioning del certificato. Questo è probabile che la richiesta di creazione del certificato sia stata effettuata solo di recente.
  • FAILED - Restituito dopo vari tentativi di convalida del dominio. o emettere il certificato. Per maggiori dettagli, consulta le provisioning_issue, authorization_attempt_info e failure_reason.
  • ATTIVO: il dominio è stato convalidato e il certificato di cui è già stato eseguito il provisioning.

Per controllare lo stato del certificato:

gcloud

Usa il comando gcloud certificate-manager certificates:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

In questo esempio, l'autorizzazione DNS è AUTHORIZED e il certificato lo stato è 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 allegarlo a un Servizio cache perimetrale.

Collega un certificato a un servizio

Dopo aver creato un certificato gestito, puoi: associarla a uno o più servizi di cache perimetrale. È possibile collegare i certificati a servizi nuovi ed esistenti aggiornando il elenco di edgeSslCertificates nel servizio.

Per collegare devi disporre delle seguenti autorizzazioni IAM a un servizio di cache perimetrale:

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

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

Modifica il file YAML esportato per aggiungere il tuo 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

Uscita:

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

Il comando restituisce una descrizione del servizio, che include elenco di edgeSslCertificates ora allegato:

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

Dopo aver aggiornato la configurazione, il certificato si propaga a tutto il perimetro più posizioni in pochi minuti. Per verificare che il certificato sia associato al tuo servizio cache perimetrale prima di apportare modifiche DNS, puoi inviare una richiesta L'indirizzo IPv4 o IPv6 associato al servizio.

Sostituire e rimuovere i certificati

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

Quando utilizzi il flag --edge-ssl-certificate dell'interfaccia alla gcloud CLI, i certificati vengono aggiunti solo all'elenco dei certificati esistenti e non sostituite. In questo modo, non potrai rimuovere accidentalmente un'etichetta per errore.

Per rimuovere il certificato test-example-com dal nostro servizio nel seguente modo Ad esempio, puoi esportare il tuo servizio in YAML utilizzando 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 comandi seguenti mostrano come esportare il servizio e rimuovere il certificato riferimento e importa il servizio aggiornato.

gcloud

Usa 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'.

Per rimuovere i certificati che non vuoi più che il servizio utilizzi, usa il tuo editor di testo preferito:

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

Salva il file modificato, quindi importa il servizio aggiornato:

gcloud

Usa 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 alcun limite al numero di servizi che è possibile associare a un certificato con cui ciascun servizio di cache perimetrale può fare riferimento a un massimo di cinque certificati.

Certificati autogestiti

Puoi caricare i tuoi certificati su Media CDN, se disponi di e specifici casi d'uso che lo richiedono.

Per caricare un certificato e la relativa chiave associata in Gestore certificati:

gcloud

Usa il comando gcloud certificate-manager certificates. Assicurati che specifichi --scope=EDGE_CACHE per i certificati associati 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].

Una volta caricato il certificato, puoi la collega a EdgeCacheService proprio come con un certificato gestito.

Risolvere i problemi di emissione dei certificati

Consulta la guida alla risoluzione dei problemi. sulla risoluzione degli errori più comuni di autorizzazione ed emissione dei certificati.

Passaggi successivi