Dopo aver creato uno o più servizi CDN per i contenuti multimediali, puoi emettere e allegare certificati SSL (TLS) per supportare la connettività sicura in browser e applicazioni mobile.
Emettere un certificato gestito
Per creare un certificato gestito e collegarlo al servizio Media CDN, devi svolgere i seguenti passaggi:
- Dimostra la proprietà ("autorizzazione") dei domini per i quali vuoi emettere i certificati creando un token di verifica e aggiungendo un record DNS.
- Crea un certificato di tipo
EDGE_CACHE
con uno o più nomi di dominio in base a quell'autorizzazione. - Allega il certificato a uno o più servizi Edge Cache.
Per autorizzare, creare e collegare i certificati a un servizio Edge Cache, devi disporre delle seguenti autorizzazioni di Identity and Access Management:
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 allegare un certificato esistente a un servizio Media CDN devono disporre delle autorizzazioni IAM certificatemanager.certs.get
, certificatemanager.certs.list
e certificatemanager.certs.use
.
Prima di iniziare
- Devi avere un nome di dominio registrato su cui puoi aggiornare i record DNS pubblici.
- Leggi la panoramica dei certificati SSL.
Crea un'autorizzazione DNS
Innanzitutto, devi creare un'autorizzazione DNS per dimostrare la proprietà del dominio prima di poter emettere certificati. L'autorizzazione DNS utilizza la verifica DNS-01 ACME e ti consente di emettere un certificato prima di indirizzare il traffico rivolto agli utenti al tuo 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
Se utilizzi Cloud DNS per il tuo dominio, consulta la procedura per aggiungere un nuovo record al dominio ospitato. Se utilizzi un altro provider DNS, consulta la relativa 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, in base alle esigenze. Dopo aver ottenuto un'autorizzazione per un dominio, puoi utilizzarla per emettere certificati.
- Ti consigliamo di creare meno certificati totali, ciascuno con tutti i nomi di dominio utilizzati per il servizio. In questo modo, le prestazioni del client migliorano quando si utilizzano più domini perché i client possono usufruire della ripresa di TLS più spesso.
- Ogni servizio Edge Cache può fare riferimento a un massimo di cinque certificati. Se emetti meno certificati, puoi rispettare questo limite.
Se devi recuperare i valori dei record DNS in un secondo momento, effettua una richiesta per il 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 i quali vuoi creare un certificato, puoi emettere una richiesta di creazione del certificato.
L'elenco di dnsAuthorizations
deve corrispondere ai nomi delle autorizzazioni esistenti che hai creato in precedenza nella procedura. Se vuoi aggiungere più
domini allo stesso certificato, fornisci un elenco di domains[]
e dnsAuthorizations[]
corrispondente
quando effettui la richiesta.
Per creare un certificato utilizzando un'autorizzazione per test.example.com
chiamata
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 statoAUTHORIZING
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
La creazione del certificato potrebbe richiedere alcuni minuti (fino a un'ora), a seconda di quanto segue:
- La velocità con cui il 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 corrente del certificato:
- PROVISIONING: il provisioning del certificato è ancora in corso. Probabilmente ciò è dovuto al fatto che la richiesta di creazione del certificato è stata effettuata di recente.
- FAILED: viene restituito dopo più tentativi di convalidare il dominio o emettere il certificato. Per maggiori dettagli, consulta i campi
provisioning_issue
,authorization_attempt_info
efailure_reason
. - ATTIVO: il dominio è stato convalidato correttamente e il provisioning del certificato è stato eseguito.
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.
Allegare un certificato a un servizio
Dopo aver creato un certificato gestito, puoi associato a uno o più servizi Edge Cache.
I certificati possono essere allegati sia ai servizi esistenti sia a quelli nuovi aggiornando l'elenco di edgeSslCertificates
nel servizio.
Per associare i certificati a un servizio Edge Cache, devi disporre delle seguenti autorizzazioni IAM:
certificatemanager.certs.get
certificatemanager.certs.list
certificatemanager.certs.use
networkservices.edgeCacheServices.get
networkservices.edgeCacheServices.list
networkservices.edgeCacheServices.update
Per allegare 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 allegato:
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à di edge entro 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.
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 a riga di comando gcloud,
i certificati vengono aggiunti all'elenco dei certificati esistenti e non sostituiti. In questo modo, eviterai di rimuovere 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 il tuo editor di testo preferito:
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 è previsto alcun limite al numero di servizi a cui è possibile associare un certificato e ogni servizio cache perimetrale può fare riferimento a un massimo di cinque certificati.
Certificati autogestiti
Puoi caricare i tuoi certificati su Media CDN se hai use case 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.
Risolvere i problemi relativi al rilascio dei certificati
Consulta la guida alla risoluzione dei problemi su come risolvere gli errori comuni di autorizzazione e rilascio dei certificati.
Passaggi successivi
- Reindirizza tutte le richieste HTTP a HTTPS per criptare le comunicazioni per impostazione predefinita
- Visualizza i log delle richieste con Logging
- Configura le richieste firmate per proteggere i tuoi contenuti
- Ottimizza le chiavi e i TTL della cache per migliorare i tassi di successo della cache
- Configura la corrispondenza avanzata delle route e aggiungi altre origini