Questo tutorial mostra come utilizzare Certificate Manager per eseguire il deployment di un certificato gestito da Google a livello globale con autorizzazione del bilanciatore del carico.
L'autorizzazione del bilanciatore del carico è il metodo più efficiente per ottenere un certificato gestito da Google. Mantiene la configurazione DNS pulita e esegue il provisioning del certificato TLS al termine della configurazione.
I seguenti bilanciatori del carico supportano i certificati gestiti da Google con autorizzazione del bilanciatore del carico:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico di rete proxy esterno globale
Obiettivi
Questo tutorial mostra come completare le seguenti attività:
- Crea un certificato gestito da Google emesso da un'autorità di certificazione (CA) attendibile pubblicamente con autorizzazione del bilanciatore del carico utilizzando Gestione certificati.
- Esegui il deployment del certificato in un bilanciatore del carico supportato utilizzando un proxy HTTPS di destinazione.
Se esegui il deployment di un certificato in un dominio di produzione, il traffico viene interrotto brevemente durante la configurazione e l'attivazione del certificato sul bilanciatore del carico.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Ruoli obbligatori
Per completare le attività di questo tutorial, assicurati di disporre dei seguenti ruoli:
Proprietario di Certificate Manager (
roles/certificatemanager.owner
)Obbligatorio per creare e gestire le risorse di Certificate Manager.
Amministratore bilanciatore del carico Compute (
roles/compute.loadBalancerAdmin
) o Amministratore rete Compute (roles/compute.networkAdmin
)Obbligatorio per creare e gestire il proxy di destinazione HTTPS.
Amministratore DNS (
roles/dns.admin
)Obbligatorio se vuoi utilizzare Cloud DNS come soluzione DNS.
Per ulteriori informazioni, consulta le seguenti risorse:
- Ruoli e autorizzazioni per Certificate Manager.
- Ruoli e autorizzazioni IAM di Compute Engine per Compute Engine.
- Ruoli e autorizzazioni per Cloud DNS.
Nomi di dominio
Per creare i certificati, ottieni i nomi di dominio completi (FQDN) dei domini di tua proprietà. Se non hai un dominio, puoi utilizzare Cloud Domains per registrarne uno.
Crea il bilanciatore del carico
Questo tutorial presuppone che tu abbia già creato e configurato i backend, i controlli di integrità, i servizi di backend e le mappe URL del bilanciatore del carico. Se hai creato un bilanciatore del carico delle applicazioni esterno, prendi nota del nome della mappa URL perché ti servirà più avanti in questo tutorial.
Se non hai ancora creato il bilanciatore del carico, consulta le seguenti pagine per crearne uno:
Per creare un bilanciatore del carico delle applicazioni esterno globale, consulta Configurare un bilanciatore del carico delle applicazioni esterno globale con backend di gruppi di istanze VM.
Per creare un bilanciatore del carico delle applicazioni classico, consulta Configurare un bilanciatore del carico delle applicazioni classico con un backend di gruppo di istanze gestite.
Per creare un bilanciatore del carico di rete proxy esterno globale (proxy SSL), consulta Configurare un bilanciatore del carico di rete proxy esterno globale (proxy SSL) con backend di gruppi di istanze VM.
Per creare un bilanciatore del carico di rete proxy classico (proxy SSL), consulta Configurare un bilanciatore del carico di rete proxy classico (proxy SSL) con backend di gruppi di istanze VM.
Crea un certificato gestito da Google con autorizzazione del bilanciatore del carico
Per creare un certificato gestito da Google con autorizzazione del bilanciatore del carico:
Console
Nella console Google Cloud, vai alla pagina Gestione certificati.
Nella scheda Certificati, fai clic su Aggiungi certificato.
Nel campo Nome certificato, inserisci un nome univoco per il certificato.
(Facoltativo) Nel campo Descrizione, inserisci una descrizione per il certificato. La descrizione ti consente di identificare il certificato.
Per Località, seleziona Globale.
In Ambito, seleziona Predefinito.
In Tipo di certificato, seleziona Crea un certificato gestito da Google.
In Tipo di autorità di certificazione, seleziona Pubblica.
Nel campo Nomi di dominio, specifica un elenco di nomi di dominio del certificato separati da virgole. Ogni nome di dominio deve essere un nome di dominio completo, ad esempio
myorg.example.com
.In Tipo di autorizzazione, seleziona Autorizzazione bilanciatore del carico.
Nel campo Etichette, specifica le etichette da associare al certificato. Per aggiungere un'etichetta, fai clic su
Aggiungi etichetta e specifica una chiave e un valore per l'etichetta.Fai clic su Crea.
Il nuovo certificato viene visualizzato nell'elenco dei certificati.
gcloud
Per creare un certificato gestito da Google globale con autorizzazione per il bilanciatore del carico, utilizza il comando certificate-manager certificates create
:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES"
Sostituisci quanto segue:
CERTIFICATE_NAME
: il nome del certificato.DOMAIN_NAMES
: un elenco delimitato da virgole dei domini di destinazione. Ogni nome di dominio deve essere un nome di dominio completo, ad esempiomyorg.example.com
.
Terraform
Utilizza una google_certificate_manager_certificate
risorsa.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
API
Crea il certificato inviando una richiesta POST
al metodo certificates.create
come segue:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google Cloud.CERTIFICATE_NAME
: il nome del certificato.DOMAIN_NAMES
: un elenco delimitato da virgole dei domini di destinazione. Ogni nome di dominio deve essere un nome di dominio completo, ad esempiomyorg.example.com
.
Esegui il deployment del certificato su un bilanciatore del carico
Per implementare il certificato gestito da Google a livello globale, utilizza una mappa dei certificati.
Creare una mappa di certificati
Crea una mappa di certificati che fa riferimento alla voce mappa di certificati associata al tuo certificato:
gcloud
Per creare una mappa dei certificati, utilizza il comando gcloud certificate-manager maps create
:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Sostituisci CERTIFICATE_MAP_NAME
con il nome della mappa dei certificati di destinazione.
Terraform
Per creare una mappa dei certificati, puoi utilizzare una
risorsa google_certificate_manager_certificate_map
.
Creare una voce della mappa di certificati
Crea una voce della mappa di certificati e associala al certificato e alla mappa di certificati:
gcloud
Per creare una voce della mappa dei certificati, utilizza il comando gcloud certificate-manager maps entries create
:
gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME" \ --certificates="CERTIFICATE_NAME" \ --hostname="HOSTNAME"
Sostituisci quanto segue:
CERTIFICATE_MAP_ENTRY_NAME
: il nome della voce della mappa di certificati.CERTIFICATE_MAP_NAME
: il nome della mappa di certificati a cui è associata la voce della mappa di certificati.CERTIFICATE_NAME
: il nome del certificato da associare alla voce della mappa di certificati.HOSTNAME
: il nome host da associare alla voce della mappa dei certificati.Se crei certificati con un dominio jolly, specifica anche il nome host con un carattere jolly, ad esempio
*.example.com
.
Terraform
Per creare una voce della mappa dei certificati, puoi utilizzare una
risorsa google_certificate_manager_certificate_map_entry
.
Verifica che la voce della mappa dei certificati sia attiva
Verifica che la voce della mappa dei certificati sia attiva prima di allegare la mappa dei certificati corrispondente al proxy di destinazione.
Per verificare la voce della mappa di certificati, utilizza il comando gcloud certificate-manager maps entries describe
:
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Sostituisci quanto segue:
CERTIFICATE_MAP_ENTRY_NAME
: il nome della voce della mappa di certificati.CERTIFICATE_NAME
: il nome del certificato da associare alla voce della mappa di certificati.
L'output è simile al seguente:
certificates: createTime: '2021-09-06T10:01:56.229472109Z' hostname: example.com name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry state: ACTIVE updateTime: '2021-09-06T10:01:58.277031787Z'
Collega la mappa dei certificati al proxy di destinazione
Puoi collegare la mappa dei certificati a un nuovo proxy target o a un proxy target esistente.
gcloud
Per collegare la mappa dei certificati a un nuovo proxy target, utilizza il comando gcloud compute target-https-proxies create
:
gcloud compute target-https-proxies create PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --url-map="URL_MAP" \ --global
Sostituisci quanto segue:
PROXY_NAME
: il nome del proxy di destinazione.CERTIFICATE_MAP_NAME
: il nome della mappa di certificati che fa riferimento alla voce della mappa di certificati e al certificato associato.URL_MAP
: il nome della mappa URL
Per collegare la mappa dei certificati a un proxy HTTPS di destinazione esistente, utilizza il comando gcloud compute target-https-proxies update
. Se non conosci il nome del proxy di destinazione esistente, vai alla pagina Proxy di destinazione e prendi nota del nome del proxy di destinazione.
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME" \ --global
Dopo aver creato o aggiornato il proxy di destinazione, esegui il seguente comando per verificarlo:
gcloud compute target-https-proxies list
Terraform
Per allegare la mappa di certificati al proxy di destinazione, puoi utilizzare una
risorsa google_compute_target_https_proxy
.
Quando configuri un proxy di destinazione, se colleghi i certificati TLS (SSL) direttamente e anche tramite una mappa dei certificati, il proxy utilizza i certificati a cui fa riferimento la mappa dei certificati e ignora i certificati TLS (SSL) collegati direttamente.
Verificare lo stato del certificato
Prima di implementare un certificato in un bilanciatore del carico, verifica che sia attivo. Potrebbero essere necessari alcuni minuti prima che lo stato del certificato passi a ACTIVE
.
Console
Nella console Google Cloud, vai alla pagina Gestione certificati.
Nella scheda Certificati, controlla la colonna Stato del certificato.
gcloud
Per verificare lo stato del certificato, esegui il seguente comando:
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Sostituisci CERTIFICATE_NAME
con il nome del certificato gestito da Google di destinazione.
L'output è simile al seguente:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: authorizationAttemptInfo: - domain: myorg.example.com state: AUTHORIZED domains: - myorg.example.com state: ACTIVE name: projects/myProject/locations/global/certificates/myCert pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Se lo stato del certificato non è ACTIVE
dopo diverse ore, controlla quanto segue:
- La mappa di certificati che fa riferimento al certificato è collegata al proxy di destinazione corretto.
- Il proxy target è collegato al bilanciatore del carico corretto.
- La configurazione DNS del dominio di destinazione rimanda all'indirizzo IP del bilanciatore del carico di destinazione.
Per ulteriori passaggi per la risoluzione dei problemi, consulta Risolvere i problemi di Gestore dei certificati.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, eliminale.
Elimina il bilanciatore del carico e le relative risorse.
Per ulteriori informazioni, consulta Eseguire la pulizia di una configurazione di bilanciamento del carico.
Elimina o scollega la mappa dei certificati dal proxy.
Per eliminare la mappa dei certificati, esegui il seguente comando:
gcloud compute target-https-proxies delete PROXY_NAME
Se vuoi mantenere il proxy HTTPS di destinazione, scollega la mappa dei certificati dal proxy. Prima di scollegare la mappa dei certificati, tieni presente quanto segue:
- Se sono presenti certificati TLS (SSL) collegati direttamente al proxy, il disaccoppiamento della mappa dei certificati fa sì che il proxy riprenda a utilizzare i certificati TLS (SSL) collegati direttamente.
- Se non sono presenti certificati TLS (SSL) collegati direttamente al proxy, la mappa dei certificati non può essere scollegata dal proxy. Prima di poter scollegare la mappa dei certificati, devi collegare almeno un certificato TLS (SSL) direttamente al proxy.
Per scollegare la mappa dei certificati, esegui il seguente comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-map
Sostituisci
PROXY_NAME
con il nome del proxy di destinazione.Elimina la voce della mappa di certificati dalla mappa di certificati:
gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \ --map="CERTIFICATE_MAP_NAME"
Sostituisci quanto segue:
CERTIFICATE_MAP_ENTRY_NAME
: il nome della voce della mappa di certificati.CERTIFICATE_MAP_NAME
: il nome della mappa di certificati.
Elimina la mappa dei certificati:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Sostituisci
CERTIFICATE_MAP_NAME
con il nome della mappa dei certificati.Elimina il certificato gestito da Google:
Console
Nella console Google Cloud, vai alla pagina Gestione certificati.
Nella scheda Certificati, seleziona la casella di controllo del certificato.
Fai clic su Elimina.
Nella finestra di dialogo visualizzata, fai clic su Elimina per confermare.
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Sostituisci
CERTIFICATE_NAME
con il nome del certificato di destinazione.