Questo tutorial illustra il processo di deployment dei certificati utilizzando un certificato gestito da Google con Certificate Authority Service come esempio.
I seguenti bilanciatori del carico supportano i certificati gestiti da Google con CA Service:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico delle applicazioni interno tra regioni
- Bilanciatore del carico di rete proxy esterno globale
Se un criterio di emissione dei certificati è attivo sul pool di CA di destinazione, il provisioning del certificato potrebbe non riuscire per uno dei seguenti motivi:
- Il criterio di emissione del certificato ha bloccato il certificato richiesto. In questo caso, non ti verrà addebitato alcun costo perché il certificato non è stato emesso.
- Il criterio ha applicato al certificato modifiche che non sono supportate da Gestore certificati. In questo caso, i costi ti verranno comunque addebitati poiché il certificato è stato emesso, anche se non è completamente compatibile con Gestore certificati.
I certificati emessi seguendo i passaggi di questo tutorial non sono considerati attendibili pubblicamente. Se vuoi emettere certificati pubblicamente attendibili, segui invece i passaggi descritti in uno dei seguenti tutorial:
- Esegui il deployment di un certificato gestito da Google con autorizzazione DNS (tutorial)
- Esegui il deployment di un certificato gestito da Google con l'autorizzazione del bilanciatore del carico (tutorial)
Se vuoi eseguire la migrazione di un certificato esistente a Gestore certificati, segui invece i passaggi descritti in Eseguire la migrazione dei certificati in Gestore certificati.
Tieni presente che, anche se utilizzi un pool di CA a livello di regione per emettere un certificato TLS gestito da Google, il certificato stesso è globale e può essere utilizzato in qualsiasi regione.
Obiettivi
Questo tutorial ti mostra come completare le attività seguenti:
- Per creare un certificato gestito da Google con CA Service, utilizza Gestore certificati.
- Esegui il deployment del certificato in un bilanciatore del carico supportato utilizzando un proxy HTTPS di destinazione.
Per ulteriori informazioni sul processo di deployment dei certificati, consulta Panoramica del deployment.
Prima di iniziare
-
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
Assicurati di disporre dei ruoli seguenti per completare le attività di questo tutorial:
- Proprietario gestore certificati:necessario per creare e gestire le risorse di Gestore certificati.
- Amministratore bilanciatore del carico Compute o Amministratore rete Compute:necessario per creare e gestire il proxy di destinazione HTTPS.
- Amministratore Certificate Authority Service:necessario per eseguire azioni in CA Service.
Per ulteriori informazioni, consulta le seguenti risorse:
- Ruoli e autorizzazioni per Gestore certificati
- Ruoli e autorizzazioni IAM di Compute Engine per Compute Engine
- Autorizzazioni e ruoli per CA Service
Crea un pool di CA. Devi creare e abilitare almeno una CA in questo pool di CA.
Configurare l'integrazione di CA Service con Gestore certificati
Configura Gestore certificati per l'integrazione con CA Service nel seguente modo:
Utilizza questo comando per creare un account di servizio Certificate Manager nel progetto Google Cloud di destinazione:
gcloud beta services identity create --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
Sostituisci
PROJECT_ID
con l'ID del progetto Google Cloud di destinazione.Il comando restituisce il nome dell'identità di servizio creata. Vedi l'esempio che segue:
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
Concedi all'account di servizio Gestore certificati il ruolo Richiedente certificato all'interno del pool di CA di destinazione, come indicato di seguito:
gcloud privateca pools add-iam-policy-binding CA_POOL \ --location REGION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
Sostituisci quanto segue:
CA_POOL
: l'ID del pool di CA di destinazione.REGION
: la regione Google Cloud di destinazione.SERVICE_ACCOUNT
: il nome completo dell'account di servizio che hai creato nel passaggio 1.
Crea una risorsa di configurazione per l'emissione del certificato per il pool di CA:
gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL \ [--lifetime=CERTIFICATE_LIFETIME] \ [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \ [--key-algorithm=KEY_ALGORITHM]
Sostituisci quanto segue:
ISSUANCE_CONFIG_NAME
: il nome univoco della risorsa di configurazione di emissione del certificato.CA_POOL
: il percorso completo e il nome del pool di CA che vuoi assegnare a questa risorsa di configurazione di emissione dei certificati.CERTIFICATE_LIFETIME
: la durata del certificato in giorni. I valori validi sono compresi tra 21 e 30 giorni nel formato di durata standard. Il valore predefinito è 30 giorni (30D
). Questa impostazione è facoltativa.ROTATION_WINDOW_PERCENTAGE
: la percentuale di durata del certificato in cui viene attivato un rinnovo. Questa impostazione è facoltativa.Il valore predefinito è 66%. Devi impostare la percentuale della finestra di rotazione in relazione alla durata del certificato, in modo che il rinnovo avvenga almeno sette giorni dopo l'emissione del certificato e almeno sette giorni prima della scadenza.
KEY_ALGORITHM
: l'algoritmo di crittografia utilizzato per generare la chiave privata. I valori validi sonoecdsa-p256
orsa-2048
. Il valore predefinito èrsa-2048
. Questa impostazione è facoltativa.
Per saperne di più sulle configurazioni di emissione dei certificati, consulta Gestire le configurazioni di emissione dei certificati.
Crea un certificato gestito da Google emesso dall'istanza del servizio CA
Crea un certificato gestito da Google emesso dall'istanza del servizio CA nel modo seguente:
Console
Nella console Google Cloud, vai alla pagina Gestore dei certificati.
Nella pagina visualizzata, seleziona la scheda Certificati.
Fai clic su Aggiungi certificato.
Inserisci un nome per il certificato.
Questo nome deve essere univoco per il progetto.
(Facoltativo) Inserisci la descrizione del certificato. La descrizione ti aiuta a identificare un certificato specifico in un secondo momento.
Per Località, scegli Globale.
Per Ambito, scegli una delle seguenti opzioni:
- Predefinito: scegli il valore predefinito per un Bilanciatore del carico delle applicazioni esterno globale, un Application Load Balancer classico o un Bilanciatore del carico di rete proxy esterno globale
- Tutte le regioni: scegli tutte le regioni per un bilanciatore del carico delle applicazioni interno tra regioni
Per Tipo di certificato, scegli Crea certificato gestito da Google.
In Tipo di autorità di certificazione, scegli Privato.
Specifica i nomi di dominio del certificato. Inserisci un elenco delimitato da virgole dei domini di destinazione. Inoltre, ogni nome di dominio deve essere un nome di dominio completo, come
myorg.example.com
.In Configurazione di emissione di certificati, seleziona il nome della risorsa di configurazione di emissione dei certificati che fa riferimento al pool di CA di destinazione.
Specifica un'etichetta da associare al certificato. Se necessario, puoi aggiungere più di un'etichetta. Per aggiungere un'etichetta, fai clic sul pulsante add_box Aggiungi etichetta e specifica un
key
e unvalue
per l'etichetta.Fai clic su Crea. Verifica che il nuovo certificato venga visualizzato nell'elenco dei certificati.
gcloud
Per un bilanciatore del carico delle applicazioni esterno globale, un bilanciatore del carico delle applicazioni classico o un bilanciatore del carico di rete con proxy esterno globale:
Esegui questo comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME
Sostituisci quanto segue:
CERTIFICATE_NAME
: un nome univoco del certificato.DOMAIN_NAMES
: un elenco delimitato da virgole dei domini di destinazione per questo certificato. Ogni 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 del certificato che fa riferimento al pool di CA di destinazione.
Per un bilanciatore del carico delle applicazioni interno tra regioni:
Esegui questo comando:
gcloud certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config=ISSUANCE_CONFIG_NAME \ --scope=all-regions
Sostituisci quanto segue:
CERTIFICATE_NAME
: un nome univoco del certificato.DOMAIN_NAMES
: un elenco delimitato da virgole dei domini di destinazione per questo certificato. Ogni 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 del certificato che fa riferimento al pool di CA di destinazione.
API
Crea il certificato effettuando una richiesta POST
al metodo certificates.create
come segue:
Per un bilanciatore del carico delle applicazioni esterno globale, un bilanciatore del carico delle applicazioni classico o un bilanciatore del carico di rete con proxy esterno globale:
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 progetto Google Cloud di destinazione.CERTIFICATE_NAME
: un nome univoco del certificato.DOMAIN_NAME
: il dominio di destinazione per questo certificato . Il nome di dominio deve essere un nome di dominio completo, comemyorg.example.com
.ISSUANCE_CONFIG_NAME
: il nome della risorsa di configurazione di emissione del certificato che fa riferimento al pool di CA di destinazione.
Per un bilanciatore del carico delle applicazioni interno tra regioni:
POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME" { "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", "scope": "ALL_REGIONS" } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google Cloud di destinazione.CERTIFICATE_NAME
: un nome univoco del certificato.DOMAIN_NAME
: il dominio di destinazione per questo certificato . Il nome di dominio deve essere un nome di dominio completo, comemyorg.example.com
.ISSUANCE_CONFIG_NAME
: il nome della risorsa di configurazione di emissione del certificato che fa riferimento al pool di CA di destinazione.
Per una panoramica del processo di deployment dei certificati, consulta Panoramica del deployment.
Verifica che il certificato sia attivo
Utilizza il comando seguente per verificare che il certificato sia attivo prima di eseguirne il deployment nel bilanciatore del carico. Potrebbero essere necessari diversi minuti prima che lo stato del certificato passi a ACTIVE
.
gcloud certificate-manager certificates describe CERTIFICATE_NAME
Sostituisci CERTIFICATE_NAME
con il nome del certificato di destinazione gestito da Google.
Il comando restituisce un 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/certificateIssuanceConfigs/myIssuanceConfig 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'
esegui il deployment del certificato su un bilanciatore del carico
Questa sezione illustra i passaggi necessari per il deployment del certificato gestito da Google in un bilanciatore del carico.
Prima di procedere con le attività in questa sezione, assicurati di aver completato le attività elencate nelle sezioni Configurare l'integrazione del servizio CA con Gestore certificati e Creare un certificato gestito da Google emesso dall'istanza del servizio CA.
A seconda del tipo di bilanciatore del carico, puoi eseguire il deployment dei certificati come segue:
- Per i seguenti bilanciatori del carico, esegui il deployment del certificato utilizzando una mappa di certificati:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico di rete proxy esterno globale
- Bilanciatore del carico delle applicazioni classico
- Per il bilanciatore del carico delle applicazioni interno tra regioni, esegui il deployment del certificato collegandolo direttamente al proxy di destinazione.
Esegui il deployment del certificato utilizzando una mappa di certificati
Questa sezione descrive i passaggi per eseguire il deployment di un certificato utilizzando una mappa di certificati.
Crea una mappa di certificati
Crea una mappa di certificati che farà riferimento alla voce della mappa dei certificati associata al tuo certificato:
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
Sostituisci CERTIFICATE_MAP_NAME
con il nome della mappa di certificati di destinazione.
Crea una voce della mappa di certificati
Crea una voce della mappa dei certificati e associala al tuo certificato e alla tua mappa di certificati:
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
: nome univoco della voce della mappa di certificatiCERTIFICATE_MAP_NAME
: il nome della mappa di certificati a cui è allegata la voce della mappa di certificatiCERTIFICATE_NAME
: il nome del certificato che vuoi associare alla voce della mappa di certificatiHOSTNAME
: il nome host da associare a questa voce della mappa di certificati
Verifica che la voce della mappa di certificati sia attiva
Usa il comando seguente per verificare che la voce della mappa di certificati sia attiva prima di collegare la mappa di certificati corrispondente al proxy di destinazione:
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 di destinazioneCERTIFICATE_MAP_NAME
: il nome della mappa di certificati a cui è allegata la voce della mappa di certificati
Il comando restituisce un 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 di certificati al proxy di destinazione
Collega la mappa di certificati configurata al proxy di destinazione:
Nella console Google Cloud, vai alla pagina Proxy di destinazione.
Prendi nota del nome del proxy di destinazione.
Collega la mappa di certificati al proxy di destinazione:
gcloud compute target-https-proxies update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME"
Sostituisci quanto segue:
PROXY_NAME
: il nome del proxy di destinazioneCERTIFICATE_MAP_NAME
: il nome della mappa di certificati che fa riferimento alla voce della mappa di certificati e al certificato associato
Se esistono certificati TLS (SSL) esistenti collegati direttamente al proxy, il proxy dà la preferenza ai certificati a cui fa riferimento la mappa di certificati rispetto ai certificati TLS (SSL) direttamente collegati.
Collega il certificato direttamente al proxy di destinazione
Per collegare il certificato direttamente al proxy, esegui questo comando:
gcloud compute target-https-proxies update PROXY_NAME \ --url-map=URL_MAP \ --global \ --certificate-manager-certificates=CERTIFICATE_NAME
Sostituisci quanto segue:
PROXY_NAME
: un nome univoco del proxy.URL_MAP
: il nome della mappa URL. Hai creato la mappa URL durante la creazione del bilanciatore del carico.CERTIFICATE_NAME
: il nome del certificato.
Risoluzione dei problemi
Per la procedura di risoluzione dei problemi, consulta Problemi relativi ai certificati emessi da un'istanza del servizio CA.
Esegui la pulizia
Per ripristinare le modifiche apportate in questo tutorial, completa i seguenti passaggi:
Scollega la mappa di certificati dal proxy.
Prima di scollegare la mappa di certificati, tieni presente quanto segue:
- Se erano presenti certificati TLS (SSL) collegati direttamente al proxy, scollegando la mappa di certificati, il proxy riprenderà a utilizzare i certificati TLS (SSL) collegati direttamente.
- Se non esistono certificati TLS (SSL) collegati direttamente al proxy, la mappa di certificati non può essere scollegata dal proxy. Devi collegare almeno un certificato TLS (SSL) direttamente al proxy prima di poter scollegare la mappa di certificati.
Per scollegare la mappa di certificati, esegui questo 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:
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 di destinazioneCERTIFICATE_MAP_NAME
: il nome della mappa di certificati di destinazione
Elimina la mappa di certificati:
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
Sostituisci
CERTIFICATE_MAP_NAME
con il nome della mappa dei certificati di destinazione.Elimina il certificato gestito da Google:
gcloud certificate-manager certificates delete CERTIFICATE_NAME
Sostituisci
CERTIFICATE_NAME
con il nome del certificato di destinazione.Elimina la risorsa di configurazione di emissione del certificato:
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
Sostituisci
ISSUANCE_CONFIG_NAME
con il nome della risorsa di configurazione di emissione dei certificati di destinazione.Elimina il pool di CA come descritto in Eliminazione di un pool di CA.
Tieni presente che per disabilitare l'ultima CA abilitata nel pool di CA a cui viene fatto riferimento nella configurazione di emissione del certificato o per eliminare completamente il pool di CA di riferimento, devi prima eliminare ogni configurazione di emissione del certificato che fa riferimento al pool di CA.