Questa pagina spiega come creare e utilizzare i certificati SSL gestiti da Google di Compute Engine.
Per creare certificati gestiti da Google utilizzando Certificate Manager, consulta Panoramica del deployment.
I certificati SSL gestiti da Google sono certificati di convalida del dominio (DV) ottenuti e gestiti da Google Cloud per i tuoi domini. Supportano più hostname in ogni certificato e Google li rinnova automaticamente.
I certificati gestiti da Google sono supportati con i seguenti bilanciatori del carico:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico di rete proxy esterno (con un proxy SSL di destinazione)
I certificati SSL gestiti da Google di Compute Engine non sono supportati per bilanciatori del carico delle applicazioni esterni regionali, bilanciatori del carico delle applicazioni interni regionali o bilanciatori del carico delle applicazioni interni tra regioni. Per questi bilanciatori del carico, puoi scegliere di utilizzare certificati SSL autogestiti di Compute Engine o prendere in considerazione l'utilizzo di Certificate Manager.
Puoi utilizzare i certificati SSL gestiti anche con Google Kubernetes Engine. Per ulteriori informazioni, consulta Utilizzare i certificati SSL gestiti da Google.
Puoi creare un certificato gestito da Google prima, durante o dopo la creazione del bilanciatore del carico. Questa pagina presuppone che tu stia creando il certificato Compute Engine prima o dopo la creazione del bilanciatore del carico, non durante. Per creare il certificato durante la creazione del bilanciatore del carico, consulta le pagine di istruzioni del bilanciatore del carico.
Prima di iniziare
- Assicurati di conoscere la panoramica dei certificati SSL.
- Assicurati di avere i nomi di dominio che vuoi utilizzare per il tuo certificato SSL gestito da Google. Se utilizzi Cloud Domains, consulta Registrare un dominio.
Assicurati di aver attivato l'API Compute Engine per il tuo progetto.
Autorizzazioni
Per seguire questa guida, devi essere in grado di creare e modificare i certificati SSL nel tuo progetto. Puoi farlo se una delle seguenti condizioni è vera:
- Sei un proprietario o editor del progetto (
roles/owner
oroles/editor
). - Nel progetto disponi sia del ruolo Amministratore sicurezza Compute (
compute.securityAdmin
) sia del ruolo Amministratore rete Compute (compute.networkAdmin
). - Hai un ruolo personalizzato per il progetto che include le autorizzazioni
compute.sslCertificates.*
e una o entrambe le autorizzazionicompute.targetHttpsProxies.*
ecompute.targetSslProxies.*
, a seconda del tipo di bilanciatore del carico in uso.
Passaggio 1: Creare un certificato SSL gestito da Google
Puoi creare un certificato gestito da Google prima, durante o dopo la creazione del bilanciatore del carico. Durante la procedura di creazione di un bilanciatore del carico nella console Google Cloud, puoi utilizzare la console Google Cloud per creare il certificato. In alternativa, puoi creare il certificato prima o dopo aver creato il bilanciatore del carico. Questo passaggio illustra come creare un certificato che potrai aggiungere in un secondo momento a uno o più bilanciatori del carico.
Se hai già creato il certificato SSL gestito da Google, puoi saltare questo passaggio.
Console
Puoi utilizzare i certificati SSL globali nella scheda Certificati classici della pagina Gestione certificati.
- Vai alla scheda Certificati classici nella console Google Cloud.
Passare ai certificati classici - Fai clic su Crea certificato SSL.
- Inserisci un nome e una descrizione facoltativa per il certificato.
- Seleziona Crea un certificato gestito da Google.
- Aggiungi i domini.
- Fai clic su Crea.
gcloud
Per creare un certificato SSL globale gestito da Google per un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico di rete proxy esterno, utilizza il comando gcloud compute ssl-certificates
create
:
gcloud compute ssl-certificates create CERTIFICATE_NAME \ --description=DESCRIPTION \ --domains=DOMAIN_LIST \ --global
Sostituisci quanto segue:
CERTIFICATE_NAME
: un nome per il certificato SSL globaleDESCRIPTION
: una descrizione del certificato SSL globaleDOMAIN_LIST
: un singolo nome di dominio o un elenco di nomi di dominio separati da virgola da utilizzare per questo certificato
Terraform
Per creare il certificato SSL gestito da Google, utilizza la risorsa google_compute_managed_ssl_certificate
.
api
Crea il metodo della risorsa del certificato gestito da Google
sslCertificates.insert
sostituendo PROJECT_ID
con il tuo ID progetto.
POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/sslCertificates
{
"name": "ssl-certificate-name",
"managed": {
"domains": [
"www.example.com"
]
},
"type": "MANAGED"
}
Verificare lo stato di un certificato SSL gestito da Google
Console
Puoi controllare lo stato dei certificati SSL globali nella scheda Certificati classici della pagina Gestione certificati.
- Vai alla scheda Certificati classici nella console Google Cloud.
Passare ai certificati classici - (Facoltativo) Filtra l'elenco dei certificati SSL.
- Controlla la colonna Stato.
- Per visualizzare ulteriori dettagli, fai clic sul nome del certificato.
gcloud
Per determinare lo stato del certificato gestito da Google, puoi utilizzare i comandigcloud compute
. Dopo aver eseguito il comando appropriato, tieni presente quanto segue:
- Lo stato gestito.
- Lo stato del dominio.
Per elencare i certificati SSL gestiti da Google, utilizza il comando gcloud
compute ssl-certificates
list
con il flag --global
.
gcloud compute ssl-certificates list \ --global
Puoi utilizzare il comando
gcloud compute ssl-certificates
describe
sostituendo CERTIFICATE_NAME
:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status, managed.domainStatus)"
A questo punto, lo stato del certificato e lo stato del dominio sono PROVISIONING
.
Dopo aver completato i passaggi in questa pagina, gli stati diventano ACTIVE
.
Per ulteriori informazioni sugli stati, consulta la pagina sulla risoluzione dei problemi.
Passaggio 2: crea o aggiorna il bilanciatore del carico
Per diventare ACTIVE
, il certificato SSL gestito da Google deve essere associato a un bilanciatore del carico, in particolare al proxy di destinazione del bilanciatore del carico.
Dopo aver creato il certificato SSL e aver verificato che sia nello stato PROVISIONING
,
puoi utilizzarlo durante la creazione del bilanciatore del carico, come descritto nelle
seguenti guide pratiche:
- Configura un bilanciatore del carico delle applicazioni esterno globale con un backend Compute Engine
- Configurare un bilanciatore del carico delle applicazioni classico con un backend Compute Engine
- Configurare un bilanciatore del carico di rete proxy esterno con un proxy SSL
In alternativa, puoi utilizzarlo per aggiornare un bilanciatore del carico esistente, come descritto qui:
Console
Quando aggiorni un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico di rete proxy esterno utilizzando la console Google Cloud, Google Cloud associa automaticamente il tuo certificato SSL al proxy di destinazione corretto.
- Vai alla pagina Bilanciamento del carico nella console Google Cloud.
Vai a Bilanciamento del carico - Fai clic sul nome del bilanciatore del carico.
- Fai clic su Modifica .
- Fai clic su Configurazione frontend.
- Fai clic sul front-end corretto (deve essere HTTPS, HTTP/2, SSL).
- Fai clic su Certificati aggiuntivi e seleziona il certificato gestito da Google dall'elenco a discesa.
- Fai clic su Crea.
gcloud
Per associare un certificato SSL al proxy HTTPS di destinazione per un bilanciatore del carico delle applicazioni esterno globale, utilizza il comando gcloud compute target-https-proxies update
con i flag --global-ssl-certificates
e --global
:
gcloud compute target-https-proxies update TARGET_PROXY_NAME \ --ssl-certificates SSL_CERTIFICATE_LIST \ --global-ssl-certificates \ --global
Per associare un certificato SSL al proxy SSL di destinazione per un bilanciatore del carico della rete proxy esterno, utilizza il comando gcloud compute target-ssl-proxies update
:
gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \ --ssl-certificates SSL_CERTIFICATE_LIST
Sostituisci quanto segue:
TARGET_PROXY_NAME
: il nome del proxy di destinazione del bilanciatore del caricoSSL_CERTIFICATE_LIST
: un elenco separato da virgole di risorse dei certificati SSLAssicurati che l'elenco dei certificati a cui si fa riferimento includa tutti i certificati SSL precedenti validi, nonché il nuovo certificato SSL. Il comando
gcloud compute target-ssl-proxies update
sostituisce i valori originali di--ssl-certificates
con il nuovo valore.
Terraform
Per creare il proxy HTTPS di destinazione, utilizza la risorsa google_compute_target_https_proxy
.
Per creare il proxy SSL di destinazione, utilizza la risorsa google_compute_target_ssl_proxy
.
Ogni proxy HTTPS di destinazione o proxy SSL di destinazione deve fare riferimento ad almeno un certificato SSL. Un proxy di destinazione può fare riferimento a più di un certificato SSL. Per maggiori dettagli, consulta Pool di destinazione e proxy di destinazione nelle quote e nei limiti delle risorse di bilanciamento del carico.
Passaggio 3: verifica l'associazione del proxy target
Dopo aver creato o aggiornato il bilanciatore del carico, puoi assicurarti che il certificato SSL sia associato al proxy target del bilanciatore del carico.
Se non conosci già il nome del proxy di destinazione, utilizza i comandi
gcloud compute target-https-proxies list
e
gcloud compute target-ssl-proxies list
per elencare i proxy di destinazione nel progetto.
Verifica l'associazione tra il certificato SSL e il proxy di destinazione eseguendo il seguente comando.
Per i bilanciatori del carico delle applicazioni esterni globali:
gcloud compute target-https-proxies describe TARGET_HTTPS_PROXY_NAME \ --global \ --format="get(sslCertificates)"
Per i bilanciatori del carico di rete proxy esterni:
gcloud compute target-ssl-proxies describe TARGET_SSL_PROXY_NAME \ --format="get(sslCertificates)"
A questo punto, lo stato del certificato gestito da Google potrebbe essere ancoraPROVISIONING
. Google Cloud collabora con l'autorità di certificazione per emettere il certificato. Il provisioning di un certificato gestito da Google può richiedere fino a 60 minuti.
Passaggio 4: aggiorna i record DNS A e AAAA in modo che puntino all'indirizzo IP del bilanciatore del carico
I record DNS potrebbero essere gestiti sul sito del registrar, sull'host DNS o sull'ISP.
Durante la gestione dei record, tieni presente quanto segue:
Assicurati che i record A DNS (per IPv4) e i record AAAA DNS (per IPv6) per i tuoi domini e eventuali sottodomini rimandino all'indirizzo IP associato alla regola o alle regole di inoltro del bilanciatore del carico.
Per eseguire il provisioning dei certificati SSL, assicurati che i record A e AAAA rimandino all'indirizzo IP del bilanciatore del carico in un DNS pubblico.
Se utilizzi Cloud DNS, configura i tuoi domini e aggiorna i server dei nomi.
Se hai più domini in un certificato gestito da Google, aggiungi o aggiorna i record DNS per tutti i domini e sottodomini in modo che rimandino all'indirizzo IP del bilanciatore del carico. La convalida del certificato non va a buon fine se i domini e i sottodomini in un certificato gestito da Google rimandano a un indirizzo IP diverso da quello dell'indirizzo IP della regola di forwarding del bilanciatore del carico.
Il provisioning dei certificati gestiti viene eseguito correttamente se si verificano le seguenti condizioni:
- I record DNS del tuo dominio utilizzano un record CNAME che rimanda a un altro dominio.
- L'altro dominio contiene un record A o AAAA che rimanda all'indirizzo IP del bilanciatore del carico.
Puoi verificare la configurazione eseguendo il comando dig
. Ad esempio,
supponiamo che il tuo dominio sia www.example.com
. Esegui questo comando dig
:
dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31748 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;www.example.com. IN A ;; ANSWER SECTION: www.example.com. 1742 IN CNAME example.net. example.net. 12 IN A 34.95.64.10 ;; Query time: 43 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Jun 03 16:54:44 PDT 2020 ;; MSG SIZE rcvd: 193
In questo esempio, 34.95.64.10
è l'indirizzo IP del bilanciatore del carico.
I resolver DNS su internet non sono controllati da Google Cloud. Memorizzano nella cache i set di record di risorse in base alla loro durata (TTL), il che significa che un comando dig
o nslookup
potrebbe restituire un valore memorizzato nella cache. Se utilizzi Cloud DNS, consulta la sezione Propagazione delle modifiche.
Tempo di propagazione del record DNS
La propagazione completa dei record DNS A e AAAA appena aggiornati può richiedere molto tempo. A volte la propagazione su internet richiede fino a 72 ore in tutto il mondo, anche se in genere sono necessarie poche ore.
Esegui di nuovo il seguente comando:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --format="get(managed.domainStatus)"
Se lo stato del dominio è FAILED_NOT_VISIBLE
, è possibile che la propagazione non sia completata.
Per informazioni dettagliate, consulta la sezione relativa allo stato del dominio del certificato SSL gestito da Google nella pagina Risolvere i problemi.
Passaggio 5: esegui il test con OpenSSL
Una volta che gli stati del certificato e del dominio sono attivi, possono essere necessari fino a 30 minuti prima che il bilanciatore del carico inizi a utilizzare il certificato SSL gestito da Google.
Per eseguire il test, esegui il seguente comando OpenSSL, sostituendo DOMAIN
con il tuo nome DNS e IP_ADDRESS
con l'indirizzo IP del bilanciatore del carico.
echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error
Questo comando stampa i certificati che il bilanciatore del carico presenta al client. Oltre ad altre informazioni dettagliate, l'output deve includere la catena di certificati e Verify return code: 0 (ok)
.
Procedure aggiuntive
Questa sezione contiene procedure aggiuntive per la gestione dei certificati.
Supportare più domini con un certificato SSL gestito da Google
Sono supportati più nomi alternativi dell'oggetto. Ogni certificato SSL gestito da Google supporta fino al numero massimo di domini per certificato SSL gestito da Google.
Se hai più del numero massimo di domini, devi richiedere più certificati gestiti da Google. Ad esempio, se tenti di creare un certificato gestito da Google con (il numero massimo + 1) domini, Google non emette certificati. Devi invece creare due o più certificati gestiti da Google e indicare esplicitamente i domini associati a ciascun certificato.
Google Cloud implementa l'indicazione nome server (SNI), come definito nel RFC 6066.
Se uno dei domini o sottodomini in un certificato gestito non punta all'indirizzo IP del bilanciatore del carico o punta a un IP insieme all'IP del bilanciatore del carico, la procedura di rinnovo non va a buon fine. Per evitare un fallimento del rinnovo, assicurati che tutti i tuoi domini e sottodomini rimandino all'indirizzo IP del bilanciatore del carico.
Rinnovare un certificato SSL gestito da Google
Google Cloud esegue il provisioning di certificati gestiti validi per 90 giorni. Circa un mese prima della scadenza, inizia automaticamente la procedura di rinnovo del certificato. A questo scopo, viene scelta un'autorità di certificazione (CA) presente sia nel record DNS CAA (Certification Authority Authorization) del tuo dominio sia nell'elenco delle CA.
La CA utilizzata per il rinnovo potrebbe essere diversa da quella utilizzata per emettere una versione precedente del tuo certificato gestito da Google. Puoi controllare la CA utilizzata da Google Cloud per il rinnovo assicurandoti che il record DNS CAA del tuo dominio specifichi una singola CA dall'elenco di CA utilizzate dai certificati gestiti da Google.
Se uno dei domini o sottodomini in un certificato gestito non punta all'indirizzo IP del bilanciatore del carico o punta a un IP insieme all'IP del bilanciatore del carico, la procedura di rinnovo non va a buon fine. Per evitare un fallimento del rinnovo, assicurati che tutti i tuoi domini e sottodomini rimandino all'indirizzo IP del bilanciatore del carico.
Specifica le CA che possono emettere il certificato gestito da Google
Nel software DNS, ti consigliamo di autorizzare esplicitamente le CA che vuoi autorizzare a emettere il tuo certificato gestito da Google. Sebbene non sia obbligatorio in ogni scenario, è necessario in determinate situazioni.
Ad esempio, se utilizzi un servizio DNS esterno e il tuo certificato gestito da Google viene revocato, il servizio potrebbe convalidare solo un nuovo certificato emesso da una o più CA specifiche.
A tale scopo, crea o modifica un record CAA in modo da includere pki.goog
o
letsencrypt.org
o entrambi. Se non hai un record CAA, il comportamento predefinito è consentire sia pki.goog
che letsencrypt.org
.
DOMAIN. CAA 0 issue "pki.goog" DOMAIN. CAA 0 issue "letsencrypt.org"
Il supporto per i certificati letsencrypt.org
viene fornito secondo il criterio del "best effort". Per la massima affidabilità, consenti sia pki.goog
che letsencrypt.org
. Se
specifichi una sola delle CA, viene utilizzata solo quella per creare e rinnovare il
tuo certificato. Questo approccio non è consigliato.
Quando crei il certificato per la prima volta, Google Cloud seleziona pki.goog
o letsencrypt.org
e lo utilizza per emettere il certificato. Quando Google rinnova il tuo certificato, questo potrebbe essere emesso dall'altra CA, a seconda delle CA che hai specificato nel record CAA (se ne hai creato uno).
Il tuo certificato potrebbe essere rinnovato da un'altra CA in uno dei seguenti
casi:
- Non disponi di un record DNS CAA per il tuo dominio.
- Hai incluso entrambe le CA nel record CAA DNS.
Per ulteriori informazioni, consulta l'RFC Record DNS CAA.
letsencrypt.org
emette nomi di dominio internazionalizzati (IDN). pki.goog
al momento non supporta gli IDN.
Se utilizzi Cloud DNS, scopri come aggiungere un record e assicurati di impostare il flag --type
su CAA
.
Sostituire un certificato SSL esistente
Per sostituire un certificato SSL esistente:
Avvia la procedura per la creazione del certificato SSL gestito da Google sostitutivo. A questo punto il certificato non diventa ACTIVE.
Aggiorna il proxy di destinazione in modo che l'elenco dei certificati a cui si fa riferimento includa il certificato SSL sostitutivo insieme ai certificati SSL attuali. I passaggi per aggiornare il proxy di destinazione variano come segue:
Attendi il completamento del provisioning del certificato SSL sostitutivo. Il provisioning potrebbe richiedere fino a 60 minuti. Al termine del provisioning, lo stato del certificato diventa
ACTIVE
.Attendi altri 30 minuti per assicurarti che il certificato sostitutivo sia disponibile per tutti i front-end di Google.
Aggiorna il proxy target per rimuovere il certificato SSL che stai sostituendo dall'elenco dei certificati a cui fai riferimento. I passaggi per aggiornare un proxy di destinazione varieranno come segue:
Attendi 10 minuti e verifica che il bilanciatore del carico utilizzi il certificato SSL di sostituzione anziché quello precedente.
Aggiorna di nuovo il proxy di destinazione rimuovendo la vecchia risorsa del certificato SSL. Puoi eliminare la risorsa del certificato SSL se non è più richiamata da nessun proxy di destinazione.
Se non elimini il vecchio certificato SSL, questo rimane ATTIVO fino alla scadenza.
Esegui la migrazione dai certificati SSL autogestiti ai certificati SSL gestiti da Google
Quando esegui la migrazione di un bilanciatore del carico dall'utilizzo di certificati SSL autogestiti a quelli gestiti da Google, devi eseguire i seguenti passaggi in questa sequenza:
- Crea un nuovo certificato gestito da Google.
- Associa il nuovo certificato gestito da Google al proxy di destinazione corretto mantenendo l'associazione del proxy di destinazione con il certificato autogestito esistente.
- Attendi finché lo stato del certificato gestito da Google non è
ACTIVE
. - Attendi 30 minuti per consentire la propagazione del nuovo certificato ai front-end Google (GFEs) di pubblicazione
- Aggiorna di nuovo il proxy di destinazione rimuovendo la risorsa del certificato autogestito. Puoi eliminare la risorsa del certificato SSL con gestione indipendente se non è più fatto riferimento da nessun proxy di destinazione.
Elimina un certificato SSL
Prima di eliminare un certificato SSL, assicurati che nessun proxy di destinazione HTTPS o SSL fa riferimento a questo certificato. Puoi eseguire questa operazione in due modi:
Elimina i proxy di destinazione che fanno riferimento a questo certificato.
Aggiorna i proxy di destinazione che fanno riferimento a questo certificato per escluderlo. I passaggi varieranno, come segue:
Per eliminare uno o più certificati SSL:
Console
Puoi eliminare i certificati SSL globali nella scheda Certificati classici della pagina Gestione certificati.
- Vai alla scheda Certificati classici nella console Google Cloud.
Passare ai certificati classici - Seleziona il certificato SSL che vuoi eliminare.
- Fai clic su Elimina.
- Per confermare, fai di nuovo clic su Elimina.
gcloud
Per eliminare un certificato SSL globale (per bilanciatori del carico delle applicazioni esterni globali o bilanciatori del carico di rete proxy esterni), utilizza il comando gcloud compute ssl-certificates
delete
con il comando --global
:
gcloud compute ssl-certificates delete CERTIFICATE_NAME \ --global
Sostituisci quanto segue:
CERTIFICATE_NAME
: il nome del certificato SSL
Passaggi successivi
- Per risolvere i problemi relativi ai certificati SSL, consulta Risoluzione dei problemi relativi ai certificati SSL.
- Per utilizzare uno script Terraform che crea un certificato gestito da Google, consulta l'esempio di Cloud Run nella pagina Esempi di moduli Terraform per bilanciatori del carico delle applicazioni esterni.