Questo tutorial mostra come utilizzare Certificate Manager per eseguire il deployment di un certificato globale gestito da Google con Certificate Authority Service.
I seguenti bilanciatori del carico globali supportano i certificati gestiti da Google con Certificate Authority Service:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico di rete proxy esterno globale
- Bilanciatore del carico di rete proxy classico
Se vuoi eseguire il deployment in bilanciatori del carico tra regioni o bilanciatori del carico a livello di regione, consulta quanto segue:
Obiettivi
Questo tutorial mostra come completare le seguenti attività:
- Crea un certificato gestito da Google con Certificate Authority Service utilizzando Certificate Manager.
- Esegui il deployment del certificato in un bilanciatore del carico supportato utilizzando un proxy HTTPS di destinazione.
Prima di iniziare
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Certificate Manager, Certificate Authority APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
Configure the gcloud CLI to use your federated identity.
For more information, see Sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init - Abilita l'API CA Service.
- Crea un pool CA. Devi creare e attivare almeno una CA in questo pool CA.
Prima di seguire i passaggi di questo tutorial, devi prendere nota di quanto segue:
- I certificati che crei con Certificate Authority Service non sono considerati attendibili pubblicamente. Per emettere certificati attendibili pubblicamente, crea certificati con autorizzazione DNS o autorizzazione del bilanciatore del carico.
Se nel pool di CA di destinazione è in vigore una policy di emissione dei certificati, il provisioning dei certificati potrebbe non riuscire per uno dei seguenti motivi:
- La policy di emissione dei certificati ha bloccato il certificato richiesto. In questo caso, non ti viene addebitato alcun importo perché il certificato non è stato emesso.
- La policy ha applicato al certificato modifiche non supportate da Certificate Manager. In questo caso, ti viene addebitato un importo perché il certificato è stato emesso, anche se non è completamente compatibile con Certificate Manager.
Per garantire la compatibilità, configura la policy di emissione dei certificati del pool CA di destinazione in modo da consentire i certificati TLS del server dell'entità finale (foglia).
I certificati TLS globali gestiti da Google possono essere configurati per essere emessi da un pool CA in qualsiasi regione.
Ruoli obbligatori
Per completare le attività di questo tutorial, assicurati di disporre dei seguenti ruoli:
Certificate Manager Owner (
roles/certificatemanager.owner)Necessario per creare e gestire le risorse di Certificate Manager.
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin) o Compute Network Admin (roles/compute.networkAdmin)Necessario per creare e gestire il proxy HTTPS di destinazione.
CA Service Admin (
roles/privateca.admin)Obbligatorio per eseguire azioni all'interno di CA Service.
Per ulteriori informazioni, consulta le seguenti risorse:
- Ruoli e autorizzazioni per Certificate Manager.
- Ruoli e autorizzazioni IAM di Compute Engine per Compute Engine.
- Controllo dell'accesso con IAM per CA Service.
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 creato il bilanciatore del carico, consulta le seguenti pagine per crearne uno:
Per creare un bilanciatore del carico delle applicazioni esterno globale, consulta Configura 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 Configura un bilanciatore del carico delle applicazioni classico con un backend del gruppo di istanze gestite.
Per creare un bilanciatore del carico di rete proxy esterno globale (proxy SSL), consulta Configura 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 Configura un bilanciatore del carico di rete proxy classico (proxy SSL) con backend di gruppi di istanze VM.
Configura l'integrazione di Certificate Authority Service con Certificate Manager
Per integrare CA Service con Certificate Manager, segui questi passaggi:
Nel progetto Google Cloud di destinazione, crea un account di servizio Certificate Manager:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_IDSostituisci
PROJECT_IDcon l'ID del progettoGoogle Cloud di destinazione.Il comando restituisce il nome dell'identità di servizio creata. Vedi l'esempio che segue:
service-520498234@gcp-sa-certificatemanager.
Concedi al account di servizio Certificate Manager il ruolo Richiedente certificato CA Service (
roles/privateca.certificateRequester) all'interno del pool CA di destinazione:gcloud privateca pools add-iam-policy-binding CA_POOL \ --location LOCATION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequesterSostituisci quanto segue:
CA_POOL: l'ID del pool CA di destinazione.LOCATION: la località Google Cloud target.SERVICE_ACCOUNT: il nome completo del account di servizio che hai creato nel passaggio 1.
Crea una risorsa di configurazione dell'emissione dei certificati per il tuo pool CA:
Console
Nella console Google Cloud , vai alla scheda Configurazioni di emissione nella pagina Certificate Manager.
Fai clic su Crea. Viene visualizzata la pagina Crea una configurazione dell'emissione dei certificati.
Nel campo Nome, inserisci un nome univoco per la configurazione di emissione dei certificati.
(Facoltativo) Nel campo Descrizione, inserisci una descrizione della configurazione di emissione.
Per Località, seleziona Globale.
(Facoltativo) Nel campo Durata, specifica la durata del certificato emesso in giorni. Il valore deve essere compreso tra 21 e 30 giorni (inclusi).
(Facoltativo) In Percentuale finestra di rotazione, specifica la percentuale della durata del certificato in cui inizia il processo di rinnovo. Per trovare l'intervallo di valori validi, consulta Percentuale della finestra di rotazione e durata.
(Facoltativo) Dall'elenco Algoritmo chiave, seleziona l'algoritmo chiave da utilizzare per generare la chiave privata.
Dall'elenco pool CA, seleziona il nome del pool CA da assegnare a questa risorsa di configurazione di emissione dei certificati.
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.
gcloud
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOLSostituisci quanto segue:
ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione di emissione dei certificati.CA_POOL: il percorso e il nome completi della risorsa del pool di CA che vuoi assegnare a questa risorsa di configurazione di emissione dei certificati.
Per saperne di più sulle risorse di configurazione dell'emissione dei certificati, consulta Gestisci le risorse di configurazione dell'emissione dei certificati.
Crea un certificato gestito da Google emesso dalla tua istanza di Certificate Authority Service
Per creare un certificato gestito da Google emesso dalla tua istanza di Certificate Authority Service, segui questi passaggi:
Console
Nella console Google Cloud , vai alla pagina Certificate Manager.
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 del 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 Privata.
Nel campo Nomi di dominio, specifica un elenco di nomi di dominio del certificato delimitato da virgole. Ogni nome di dominio deve essere un nome di dominio completo, ad esempio
myorg.example.com.In Seleziona una configurazione per l'emissione del certificato, seleziona il nome della risorsa di configurazione per l'emissione del certificato che fa riferimento al pool di CA di destinazione.
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 globale gestito da Google con Certificate Authority Service, utilizza il comando certificate-manager certificates create con il flag issuance-config:
gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES" \
--issuance-config=ISSUANCE_CONFIG_NAME
Sostituisci quanto segue:
CERTIFICATE_NAME: il nome del certificato.DOMAIN_NAME: il nome del dominio di destinazione. Il nome di dominio deve essere un nome di dominio completo, ad esempiomyorg.example.com.ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione di emissione dei certificati che fa riferimento al pool CA di destinazione.
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"],
"issuanceConfig": "ISSUANCE_CONFIG_NAME",
}
}
Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo progetto Google Cloud .CERTIFICATE_NAME: il nome del certificato.DOMAIN_NAME: il nome del dominio di destinazione. Il nome di dominio deve essere un nome di dominio completo, ad esempiomyorg.example.com.ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione di emissione dei certificati che fa riferimento al pool CA di destinazione.
Verifica lo stato del certificato
Prima di eseguire il deployment di un certificato in un bilanciatore del carico, verifica che sia attivo. Potrebbero essere necessari alcuni minuti prima che lo stato del certificato diventi ACTIVE.
Console
Nella console Google Cloud , vai alla pagina Certificate Manager.
Nella scheda Certificati, controlla la colonna Stato del certificato.
gcloud
Per verificare lo stato del certificato, esegui questo 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: domains: - myorg.example.com issuanceConfig: projects/myproject/locations/global/issuanceConfigs/myissuanceConfig state: ACTIVE name: projects/myproject/locations/global/certificates/mycertificate pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
Per ulteriori passaggi per la risoluzione dei problemi, consulta Risolvi i problemi di Certificate Manager.
Esegui il deployment del certificato in un bilanciatore del carico
Per eseguire il deployment del certificato globale gestito da Google, utilizza una mappa dei certificati.
Crea una mappa dei certificati
Crea una mappa dei certificati che faccia riferimento alla voce della mappa dei 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.
Crea una voce della mappa dei certificati
Crea una voce della mappa dei certificati e associala al certificato e alla mappa dei 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 dei certificati.CERTIFICATE_MAP_NAME: il nome della mappa dei certificati a cui è associata la voce della mappa dei certificati.CERTIFICATE_NAME: il nome del certificato che vuoi associare alla voce della mappa dei certificati.HOSTNAME: il nome host che vuoi associare alla voce della mappa dei certificati.Se vuoi creare un certificato che copra sia un dominio con caratteri jolly sia un dominio principale, specifica il nome host con un dominio principale e un carattere jolly, ad esempio
example.come*.example.com. Inoltre, devi specificare due voci della mappa dei certificati, una perexample.come l'altra per*.example.com.
Terraform
Per creare una voce della mappa dei certificati con un dominio principale, utilizza una risorsa google_certificate_manager_certificate_map_entry.
Per creare una voce della mappa dei certificati con un dominio con caratteri jolly, utilizza 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 collegare la mappa dei certificati corrispondente al proxy di destinazione.
Per verificare la voce della mappa dei 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 dei certificati.CERTIFICATE_NAME: il nome del certificato che vuoi associare alla voce della mappa dei 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 proxy di destinazione nuovo o esistente.
Console
Se il proxy di destinazione fa parte di un bilanciatore del carico esistente, puoi collegare la mappa dei certificati modificando la configurazione del frontend del bilanciatore del carico.
Nella console Google Cloud , vai alla pagina Bilanciamento del carico.
Fai clic sul nome del bilanciatore del carico da aggiornare, quindi su Modifica.
Fai clic su Configurazione frontend, quindi seleziona la configurazione dell'indirizzo IP e della porta frontend che vuoi modificare.
Se viene visualizzato Scegli repository di certificati, seleziona Utilizza mappa certificati.
Nell'elenco Seleziona una mappa di certificati, seleziona la mappa di certificati.
Fai clic su Fine, quindi su Aggiorna.
gcloud
Per collegare la mappa dei certificati a un nuovo proxy di destinazione, 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 dei certificati che fa riferimento alla voce della mappa dei 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 questo comando per verificarlo:
gcloud compute target-https-proxies list
Terraform
Per collegare la mappa dei 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.
Risoluzione dei problemi relativi ai certificati emessi da Certificate Authority Service
Per i passaggi per la risoluzione dei problemi, consulta Problemi relativi ai certificati emessi da un'istanza di Certificate Authority Service.
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.
Consulta Esegui 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 questo comando:
gcloud compute target-https-proxies delete PROXY_NAME
Se vuoi mantenere il proxy HTTPS di destinazione, scollega la mappa dei certificati dal proxy.
- Se al proxy sono collegati direttamente certificati TLS (SSL), lo scollegamento 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. Devi prima collegare almeno un certificato TLS (SSL) direttamente al proxy prima di poter scollegare la mappa dei certificati.
Per scollegare la mappa dei certificati, esegui questo comando:
gcloud compute target-https-proxies update PROXY_NAME \ --clear-certificate-mapSostituisci
PROXY_NAMEcon il nome del proxy di destinazione.Elimina la voce della mappa dei certificati dalla mappa dei 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 dei 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_NAMEcon il nome della mappa dei certificati.Elimina il certificato gestito da Google:
Console
Nella console Google Cloud , vai alla pagina Certificate Manager.
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_NAMEcon il nome del certificato di destinazione.Elimina la risorsa di configurazione dell'emissione dei certificati:
Console
Nella console Google Cloud , vai alla scheda Configurazioni di emissione nella pagina Certificate Manager.
Seleziona la casella di controllo della risorsa di configurazione di emissione che vuoi eliminare.
Fai clic su Elimina.
Nella finestra di dialogo visualizzata, fai clic su Elimina per confermare.
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
Sostituisci
ISSUANCE_CONFIG_NAMEcon il nome della risorsa di configurazione di emissione dei certificati di destinazione.Elimina il pool CA.
Per eliminare il pool di CA o per disabilitare l'ultima CA abilitata in un pool di CA a cui fa riferimento una risorsa di configurazione di emissione dei certificati, elimina tutte le risorse di configurazione di emissione dei certificati che fanno riferimento al pool di CA. Per saperne di più, consulta Elimina un pool di CA.