Utilizza i certificati SSL gestiti da Google

Questa pagina illustra come creare e utilizzare Compute Engine Certificati SSL gestiti da Google.

Per creare certificati gestiti da Google utilizzando Gestore certificati, consulta Panoramica del deployment.

I certificati SSL gestiti da Google sono certificati di convalida del dominio (DV) Google Cloud ottiene e gestisce per i tuoi domini. Supportano più di nomi host 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 non sono supportati per Bilanciatori del carico delle applicazioni esterni regionali e bilanciatori del carico delle applicazioni interni regionali. Per questi bilanciatori del carico, utilizzare certificati SSL autogestiti.

Puoi anche utilizzare i certificati SSL gestiti con Google Kubernetes Engine. Per ulteriori informazioni per ulteriori informazioni, consulta l'articolo sull'utilizzo del protocollo SSL certificati.

Puoi creare un certificato gestito da Google prima, durante o dopo la creazione del bilanciatore del carico. In questa pagina si presuppone che tu stia creando 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 delle istruzioni sul bilanciatore del carico.

Prima di iniziare

Autorizzazioni

Per seguire questa guida, devi essere in grado di creare e modificare i certificati SSL in del progetto. Puoi farlo se una delle seguenti condizioni è vera:

Passaggio 1: Crea un certificato SSL gestito da Google

Puoi creare un certificato gestito da Google prima, durante o dopo la creazione del bilanciatore del carico. Durante il processo di creazione di un bilanciatore del carico console Google Cloud, puoi utilizzare la console Google Cloud per creare certificato. In alternativa, puoi creare il certificato prima o dopo la creazione del bilanciatore del carico. Questo passaggio mostra come creare un certificato che potrai aggiungere in un secondo momento a uno o più bilanciatori del carico.

Se hai già creato il tuo certificato SSL gestito da Google, puoi saltare questo passaggio.

Console

Puoi utilizzare i certificati SSL globali nella scheda Certificati classici su pagina Gestore certificati.

  1. Vai alla scheda Certificati classici nella console Google Cloud.
    Vai ai certificati classici
  2. Fai clic su Crea certificato SSL.
  3. Inserisci un nome e una descrizione facoltativa per il certificato.
  4. Seleziona Crea certificato gestito da Google.
  5. Aggiungi i domini.
  6. Fai clic su Crea.

gcloud

Per creare un certificato SSL globale gestito da Google per un un bilanciatore del carico delle applicazioni esterno globale per il 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 globale
  • DESCRIPTION: una descrizione del certificato SSL globale
  • DOMAIN_LIST: un singolo nome di dominio o un elenco di valori delimitato da virgole nomi di dominio da utilizzare per questo certificato

Terraform

Per creare il certificato SSL gestito da Google, utilizza la risorsa google_compute_managed_ssl_certificate.

resource "google_compute_managed_ssl_certificate" "lb_default" {
  provider = google-beta
  name     = "myservice-ssl-cert"

  managed {
    domains = ["example.com"]
  }
}

api

Crea la risorsa del certificato gestita 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"
}

Controllare lo stato di un certificato SSL gestito da Google

Console

Puoi controllare lo stato dei tuoi certificati SSL globali sulla Scheda Certificati classici nella pagina Gestore certificati.

  1. Vai alla scheda Certificati classici nella console Google Cloud.
    Vai ai certificati classici
  2. (Facoltativo) Filtra l'elenco dei certificati SSL.
  3. Controlla la colonna Stato.
  4. Per visualizzare ulteriori dettagli, fai clic sul nome del certificato.

gcloud

Per determinare lo stato del tuo certificato gestito da Google, puoi utilizzare Comandi gcloud compute. Dopo aver eseguito il comando appropriato, tieni presente seguenti:

  • 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 lo gcloud compute ssl-certificates describe , che sostituisce 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 dello stato del dominio sono PROVISIONING. Dopo aver completato i passaggi in questa pagina, gli stati diventano ACTIVE.

Per ulteriori informazioni sugli stati, consulta la risoluzione dei problemi .

Passaggio 2: crea o aggiorna il bilanciatore del carico

Per diventare ACTIVE, è necessario associare il certificato SSL gestito da Google da un bilanciatore del carico, nello specifico dal proxy di destinazione.

Una volta creato il certificato SSL, che si trova nello stato PROVISIONING, puoi utilizzarlo durante la creazione del bilanciatore del carico, come descritto in le seguenti guide illustrative:

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 Console Google Cloud, Google Cloud associa automaticamente il tuo SSL con il proxy di destinazione corretto.

  1. Vai alla pagina Bilanciamento del carico nella console Google Cloud.
    Vai a Bilanciamento del carico
  2. Fai clic sul nome del bilanciatore del carico.
  3. Fai clic su Modifica .
  4. Fai clic su Configurazione frontend.
  5. Fai clic sul front-end corretto (deve essere HTTPS, HTTP/2, SSL).
  6. Fai clic su Certificati aggiuntivi e seleziona il tuo certificato gestito da Google dall'elenco a discesa.
  7. Fai clic su Crea.

gcloud

Per associare un certificato SSL al proxy HTTPS di destinazione per un il bilanciatore del carico delle applicazioni esterno globale, utilizza la 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 di rete proxy esterno, utilizza 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 della destinazione del bilanciatore del carico proxy
  • SSL_CERTIFICATE_LIST: un elenco di SSL delimitato da virgole risorse certificato

    Assicurati che l'elenco dei certificati di riferimento include tutti i certificati SSL validi meno recenti nonché il nuovo SSL certificato. 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.

resource "google_compute_target_https_proxy" "lb_default" {
  provider = google-beta
  name     = "myservice-https-proxy"
  url_map  = google_compute_url_map.lb_default.id
  ssl_certificates = [
    google_compute_managed_ssl_certificate.lb_default.name
  ]
  depends_on = [
    google_compute_managed_ssl_certificate.lb_default
  ]
}

Ogni proxy HTTPS di destinazione o proxy SSL di destinazione deve fare riferimento ad almeno un protocollo SSL certificato. Un proxy di destinazione può fare riferimento a più certificati SSL. Per maggiori dettagli, consulta Pool di destinazione e proxy di destinazione in le quote e i limiti delle risorse di bilanciamento del carico.

Passaggio 3: verifica l'associazione del proxy di destinazione

Dopo aver creato o aggiornato il bilanciatore del carico, puoi assicurarti che Il certificato SSL è associato al proxy di destinazione del bilanciatore del carico.

Se non conosci già il nome del proxy di destinazione, utilizza la 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 tramite eseguendo questo 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 tuo certificato gestito da Google potrebbe essere ancora PROVISIONING. Google Cloud sta collaborando con l'autorità di certificazione per emettere il certificato. Il provisioning di un certificato gestito da Google potrebbe richiedere ai 60 minuti circa.

Passaggio 4: aggiorna i record DNS A e AAAA in modo che puntino all'indirizzo IP del bilanciatore del carico

I tuoi record DNS potrebbero essere gestiti presso il sito del registrar, l'host DNS o l'ISP del tuo registrar.

Durante la gestione dei record, tieni presente quanto segue:

  • Assicurati che i record DNS A (per IPv4) e i record DNS AAAA (per IPv6) per i tuoi domini e gli eventuali sottodomini puntino all'indirizzo IP associato la regola o le regole di forwarding del bilanciatore del carico.

    Per eseguire il provisioning dei certificati SSL, assicurati che i record A e AAAA rimandino al l'indirizzo IP del bilanciatore del carico su un DNS pubblico.

  • Se utilizzi Cloud DNS, configura i tuoi domini e aggiorna il nome server web.

  • Se disponi di più domini in un certificato gestito da Google, aggiungi o aggiorna Record DNS per tutti i domini e i sottodomini affinché puntino agli indirizzi del bilanciatore del carico Indirizzo IP. La convalida del certificato ha esito negativo se i domini e i sottodomini in un certificato gestito da Google puntano a un IP diverso rispetto all'indirizzo IP della regola di forwarding del bilanciatore del carico.

Il provisioning dei certificati gestiti viene eseguito correttamente quando 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 al tuo carico l'indirizzo IP del bilanciatore.

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 controllabili dalle in Google Cloud. Memorizza nella cache i set di record di risorse in base alle durata (TTL), che indica che un comando dig o nslookup potrebbe restituire un valore memorizzato nella cache. Se utilizzi Cloud DNS, consulta Propagazione di modifiche.

Tempo di propagazione del record DNS

L'aggiornamento dei record DNS A e AAAA di recente può richiedere molto tempo sono stati propagati completamente. A volte la propagazione su internet richiede fino a 72 ore a livello mondiale, anche se in genere richiede alcune ore.

Esegui nuovamente questo comando:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
    --format="get(managed.domainStatus)"

Se lo stato del tuo dominio è FAILED_NOT_VISIBLE, il motivo potrebbe essere la propagazione non è completo.

Per informazioni dettagliate, consulta la sezione sul protocollo SSL gestito da Google nella sezione relativa allo stato del dominio del certificato nella sezione .

Passaggio 5: esegui un test con OpenSSL

Una volta che gli stati del certificato e del dominio vengono attiva, potrebbero essere necessari fino a 30 minuti bilanciatore del carico per iniziare a utilizzare il certificato SSL gestito da Google.

Per verificare, esegui questo comando OpenSSL, sostituendo DOMAIN con il tuo nome DNS e IP_ADDRESS con l'indirizzo IP del tuo con il bilanciatore del carico di rete passthrough esterno regionale.

echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error

Questo comando restituisce i certificati presentati dal bilanciatore del carico. al cliente. Insieme ad altre informazioni dettagliate, l'output dovrebbe includono la catena di certificati e Verify return code: 0 (ok).

Procedure aggiuntive

Questa sezione contiene procedure aggiuntive per la gestione dei certificati.

Supporta più domini con un certificato SSL gestito da Google

Sono supportati più nomi alternativi dei soggetti. Ciascuna soluzione gestita da Google Il certificato SSL supporta fino al numero massimo di domini per Certificato SSL gestito da Google.

Se hai più domini rispetto al numero massimo consentito, devi richiedere più domini Certificati gestiti da Google. Ad esempio, se provi a creare un modello di attribuzione certificato con (il valore massimo + 1) domini, Google non emette alcun certificato. Devi invece creare due o più certificati gestiti da Google e indicare esplicitamente quali domini associati a ciascun certificato.

Google Cloud implementa la funzione Server Name Indication (SNI), come definita nella RFC 6066.

Se uno dei domini o sottodomini in un certificato gestito non punta a all'indirizzo IP del bilanciatore del carico oppure che rimandano a un IP insieme all'IP del bilanciatore del carico, il processo di rinnovo non va a buon fine. Per evitare il rinnovo in errore, assicurati che tutti i domini e i sottodomini indirizzino alla l'indirizzo IP del bilanciatore del carico.

Rinnova un certificato SSL gestito da Google

Google Cloud esegue il provisioning di certificati gestiti validi per 90 giorni. Circa uno mese prima della scadenza, inizierà automaticamente la procedura per il rinnovo del certificato. Per farlo, viene scelta un'autorità di certificazione (CA) presente in entrambe le proprietà del dominio nel record DNS dell'autorità di certificazione (CAA, Certification Authority Authorization) e nell'elenco di CA.

La CA utilizzata per il rinnovo potrebbe essere diversa da quella utilizzata per emettere un del tuo certificato gestito da Google. Puoi controllare la CA che Per il rinnovo, Google Cloud assicura che il DNS CAA del dominio specifica una singola CA dall'elenco di CA gestite da Google l'utilizzo dei certificati.

Se uno dei domini o sottodomini in un certificato gestito non punta a all'indirizzo IP del bilanciatore del carico oppure che rimandano a un IP insieme all'IP del bilanciatore del carico, il processo di rinnovo non va a buon fine. Per evitare il rinnovo in errore, assicurati che tutti i domini e i sottodomini indirizzino alla l'indirizzo IP del bilanciatore del carico.

Specifica le CA che possono emettere il tuo certificato gestito da Google

Nel software DNS, ti consigliamo di autorizzare esplicitamente le CA che vuoi consentire di emettere il tuo certificato gestito da Google. Sebbene non sia obbligatorio in ogni scenario, è necessario in certe situazioni.

Ad esempio, se utilizzi un servizio DNS esterno e l'account gestito da Google è stato revocato, il servizio potrebbe convalidare solo un nuovo certificato da una o più CA specifiche.

A questo scopo, crea o modifica un record CAA in modo da includere pki.goog o letsencrypt.org o entrambe. Se non hai un record CAA, il comportamento predefinito è consentire sia pki.goog sia letsencrypt.org.

DOMAIN. CAA 0 issue "pki.goog"
DOMAIN. CAA 0 issue "letsencrypt.org"

L'assistenza per i certificati letsencrypt.org viene fornita secondo il criterio del "best effort" base. Per una migliore affidabilità, consenti pki.goog e letsencrypt.org. Se solo una delle CA, solo che la CA viene utilizzata per creare e rinnovare certificato. Questo approccio è sconsigliato.

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 certificato, che potrebbe essere stato emesso dall'altra CA, a seconda delle CA specificate nel record CAA (se ne hai creato uno). Il certificato potrebbe essere rinnovato da una CA diversa in uno dei seguenti modi casi:

  • Non hai un record CAA DNS per il tuo dominio.
  • Hai incluso entrambe le CA nel record CAA del DNS.

Per ulteriori informazioni, consulta le pagine RFC, CAA DNS registrazione.

letsencrypt.org problemi con i nomi di dominio internazionalizzati (IDN). pki.goog attualmente non supporta gli IDN.

Se utilizzi Cloud DNS, scopri come aggiungi un record e assicurati di impostare il flag --type a CAA.

Sostituisci un certificato SSL esistente

Per sostituire un certificato SSL esistente:

  1. Avvia la procedura di creazione del certificato SSL sostitutivo gestito da Google. Il certificato non diventa ATTIVO in questo momento.

  2. Aggiorna il proxy di destinazione in modo che l'elenco dei certificati di riferimento includa il certificato SSL sostitutivo insieme ai certificati SSL correnti. La per aggiornare il proxy di destinazione variano come segue:

  3. Attendi che il certificato SSL sostitutivo completi il provisioning. Il provisioning potrebbe richiedere fino a 60 minuti. Una volta completato il provisioning, stato del certificato diventa ACTIVE.

  4. Attendi altri 30 minuti per assicurarti che il certificato sostitutivo sia disponibili per tutti i Google Front End (GFE).

  5. Aggiorna il proxy di destinazione per rimuovere il certificato SSL che stai sostituendo dall'elenco dei certificati di riferimento. I passaggi per aggiornare un proxy di destinazione variano, come indicato di seguito:

  6. Attendi 10 minuti e verifica che il bilanciatore del carico utilizzi la sostituzione certificato SSL anziché quello precedente.

  7. Aggiorna di nuovo il proxy di destinazione, rimuovendo la risorsa del certificato SSL precedente. Tu può eliminare la risorsa del certificato SSL se non è più a cui fa riferimento un proxy di destinazione.

Se non elimini il certificato SSL precedente, questo rimarrà 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 Certificati SSL gestiti da Google, in questo caso devi eseguire le seguenti operazioni sequenza:

  1. Crea un nuovo certificato gestito da Google.
  2. Associa il nuovo certificato gestito da Google alla destinazione corretta del proxy mantenendo lo stato con il certificato autogestito esistente.
  3. Attendi finché non ricevi il certificato gestito da Google è ACTIVE.
  4. Attendi 30 minuti per consentire la propagazione del nuovo certificato alle richieste di gestione di Google Front-end (GFE)
  5. Aggiorna di nuovo il proxy di destinazione, rimuovendo il certificato autogestito risorsa. Puoi eliminare il certificato SSL autogestito risorsa se non vi fa più riferimento in 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 farlo in due modi:

Per eliminare uno o più certificati SSL:

Console

Puoi eliminare i certificati SSL globali nella scheda Certificati classici su pagina Gestore certificati.

  1. Vai alla scheda Certificati classici nella console Google Cloud.
    Vai ai certificati classici
  2. Seleziona il certificato SSL che vuoi eliminare.
  3. Fai clic su Elimina.
  4. Per confermare, fai di nuovo clic su Elimina.

gcloud

Per eliminare un certificato SSL globale (per i bilanciatori del carico delle applicazioni esterni globali 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 la sezione Risoluzione dei problemi relativi a SSL certificati.
  • Per utilizzare uno script Terraform che crea un certificato gestito da Google, consulta il comando Cloud Run esempio nella pagina Esempi di moduli Terraform per il bilanciatore del carico delle applicazioni esterno.