Esegui il deployment di un certificato globale gestito da Google con Certificate Authority Service


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 il servizio CA:

  • 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 è in vigore un criterio di emissione dei certificati nel pool di CA di destinazione, il provisioning dei certificati potrebbe non riuscire per uno dei seguenti motivi:

  • Il criterio di emissione dei certificati ha bloccato il certificato richiesto. In questo caso, non ti viene addebitato alcun importo perché il certificato non è stato emesso.
  • Il criterio ha applicato al certificato modifiche che non sono supportate da Gestore certificati. In questo caso, la fatturazione avviene comunque perché 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 attendibili pubblicamente, segui invece i passaggi descritti in uno dei seguenti tutorial:

Se vuoi eseguire la migrazione di un certificato esistente a Certificate Manager, segui invece i passaggi descritti in Eseguire la migrazione dei certificati a Certificate Manager.

Tieni presente che, anche se utilizzi un pool di CA regionali per emettere un certificato TLS gestito da Google, il certificato stesso è globale e può essere utilizzato in qualsiasi regione.

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

  • Crea un certificato gestito da Google con CA Service mediante Gestione certificati.
  • Esegui il deployment del certificato su un bilanciatore del carico supportato utilizzando un proxy HTTPS di destinazione.

Per ulteriori informazioni sulla procedura di deployment dei certificati, consulta la Panoramica del deployment.

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Assicurati di disporre dei seguenti ruoli per completare le attività in questo tutorial:

    • Proprietario di Certificate Manager: obbligatorio per creare e gestire le risorse di Certificate Manager.
    • Amministratore bilanciatore del carico Compute o Amministratore rete Compute: obbligatorio per creare e gestire il proxy target HTTPS.
    • Amministratore Certificate Authority Service:obbligatorio per eseguire azioni all'interno del servizio CA.

    Per ulteriori informazioni, consulta le seguenti risorse:

  3. Abilita l'API CA Service.

  4. Crea un pool di CA. Devi creare e abilitare Almeno una CA in questo pool di CA.

Configura l'integrazione del servizio CA con Gestore certificati

Configura Certificate Manager per l'integrazione con il servizio CA come segue:

  1. Utilizza il seguente 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à del servizio creata. Vedi il seguente esempio:

    service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
    
  2. Concedi all'account di servizio Gestore certificati il ruolo Richiedente certificato in il pool di CA di destinazione nel seguente modo:

    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 creato nel passaggio 1.
  3. Crea una risorsa per la configurazione dell'emissione dei certificati 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 dell'emissione dei certificati.
    • CA_POOL: il percorso completo della risorsa e il nome del pool di CA da assegnare a questa risorsa della configurazione dell'emissione dei certificati.
    • CERTIFICATE_LIFETIME: la durata del certificato in giorni. I valori validi vanno da 21 a 30 giorni nel formato della durata standard. Il valore predefinito è 30 giorni (30D). Questa impostazione è facoltativa.

    • ROTATION_WINDOW_PERCENTAGE: la percentuale del ciclo di vita del certificato in cui viene attivato un rinnovo. Questa impostazione è facoltativa.

      Il valore predefinito è 66%. Devi impostare la percentuale della finestra di rotazione in base alla durata del certificato in modo che il rinnovo del certificato avvenga almeno 7 giorni dopo la sua emissione e almeno 7 giorni prima della scadenza.

    • KEY_ALGORITHM: l'algoritmo di crittografia utilizzato per generare la chiave privata. I valori validi sono ecdsa-p256 o rsa-2048. Il valore predefinito è rsa-2048. Questa impostazione è facoltativa.

Per saperne di più sulle configurazioni di emissione dei certificati, vedi Gestire le configurazioni dell'emissione dei certificati.

Crea un certificato gestito da Google emesso dalla tua istanza di CA Service

Crea un certificato gestito da Google emesso dalla tua istanza di CA Service come segue:

Console

  1. Nella console Google Cloud, vai alla pagina Gestione certificati.

    Vai a Gestore certificati

  2. Nella pagina visualizzata, seleziona la scheda Certificati.

  3. Fai clic su Aggiungi certificato.

  4. Inserisci un nome per il certificato.

    Questo nome deve essere univoco per il progetto.

  5. (Facoltativo) Inserisci la Descrizione del certificato. La descrizione consente di identificare un certificato specifico in un secondo momento.

  6. Per Località, scegli Globale.

  7. In Ambito, scegli una delle seguenti opzioni:

    1. Predefinito: scegli il valore predefinito per un Bilanciatore del carico delle applicazioni esterno globale, un Bilanciatore del carico delle applicazioni classico o un Bilanciatore del carico di rete proxy esterno globale.
    2. Tutte le regioni: scegli tutte le regioni per un bilanciatore del carico delle applicazioni interno tra regioni
  8. In Tipo di certificato, scegli Crea certificato gestito da Google.

  9. In Tipo di autorità di certificazione, scegli Privato.

  10. Specifica i Nomi di dominio del certificato. Inserisci un valore delimitato da virgole dei domini di destinazione. Inoltre, ogni nome di dominio deve essere un nome nome di dominio, ad esempio myorg.example.com.

  11. Per 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.

  12. Specifica un'etichetta da associare al certificato. Se necessario, puoi aggiungere più di un'etichetta. Per aggiungere un'etichetta, fai clic sul pulsante Aggiungi etichetta e specifica un key e un value per l'etichetta.

  13. 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 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 esempio myorg.example.com.
  • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione dell'emissione dei certificati 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 separato da virgole dei domini target per questo certificato. Ogni nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.
  • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione dell'emissione dei certificati che fa riferimento al pool di CA di destinazione.

API

Crea il certificato inviando una richiesta POST a 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 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, ad esempio myorg.example.com.
  • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione dell'emissione dei certificati che fa riferimento alla 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, ad esempio myorg.example.com.
  • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione dell'emissione dei certificati che fa riferimento al pool di CA di destinazione.

Per una panoramica della procedura di implementazione dei certificati, consulta Panoramica dell'implementazione.

Verifica che il certificato sia attivo

Utilizza il seguente comando per verificare che il certificato stesso sia attivo prima di eseguire il deployment nel bilanciatore del carico. Potrebbero essere necessari diversi minuti per impostare lo stato del certificato in ACTIVE.

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Sostituisci CERTIFICATE_NAME con il nome del certificato gestito da Google di destinazione.

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 eseguire il deployment del certificato gestito da Google in un bilanciatore del carico.

Prima di procedere con le attività di questa sezione, assicurati di aver completato il elencate nelle sezioni Configurare l'integrazione del servizio CA con il gestore certificati e Creare un certificato gestito da Google emesso dall'istanza del servizio CA.

A seconda del tipo di bilanciatore del carico, puoi implementare i certificati come segue:

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 di 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 di certificati e associarlo al tuo certificato. nonché la mappa dei 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: un nome univoco della voce della mappa di certificati
  • CERTIFICATE_MAP_NAME: il nome del certificato mappa a cui questa voce di mappa di certificati si collega
  • CERTIFICATE_NAME: il nome del certificato che vuoi associa a questa voce della mappa di certificati
  • HOSTNAME: il nome host che vuoi associare con questa voce della mappa di certificati

Verifica che la voce della mappa di certificati sia attiva

Utilizza 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 di certificati di destinazione
  • CERTIFICATE_MAP_NAME: il nome della mappa di certificati a cui è associata questa 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 dei certificati al proxy di destinazione

Collega la mappa di certificati configurata al proxy di destinazione:

  1. Nella console Google Cloud, vai alla pagina Proxy di destinazione.

    Vai a Proxy di destinazione

  2. Prendi nota del nome del proxy di destinazione.

  3. 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 destinazione
    • CERTIFICATE_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) allegati direttamente al proxy, il proxy dà la preferenza ai certificati a cui fa riferimento la mappa dei certificati rispetto ai certificati TLS (SSL) allegati direttamente.

Allega il certificato direttamente al proxy di destinazione

Per allegare il certificato direttamente al proxy, esegui il seguente 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 di CA Service.

Esegui la pulizia

Per annullare le modifiche apportate in questo tutorial, completa i seguenti passaggi:

  1. Scollega la mappa di certificati dal proxy.

    Prima di scollegare la mappa di 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. Devi prima collegare almeno un protocollo TLS (SSL) direttamente al proxy prima di 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.

  2. 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 di destinazione
    • CERTIFICATE_MAP_NAME: il nome del mappa di certificati di destinazione
  3. 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.

  4. Elimina il certificato gestito da Google:

    Console

    1. Nella console Google Cloud, vai alla pagina Gestione certificati.

      Vai a Gestore dei certificati

    2. Nella scheda Certificati, seleziona la casella di controllo della certificato.

    3. Fai clic su Elimina.

    4. 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.

  5. Elimina la risorsa di configurazione dell'emissione dei certificati:

    Console

    1. Nella console Google Cloud, vai alla pagina Gestione certificati.

      Vai a Gestore certificati

    2. Nella scheda Configurazioni di emissione, seleziona la casella di controllo della configurazione di emissione.

    3. Fai clic su Elimina.

    4. Nella finestra di dialogo visualizzata, fai clic su Elimina per confermare.

    gcloud

     gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
     

    Sostituisci ISSUANCE_CONFIG_NAME con il nome del target risorsa di configurazione dell'emissione dei certificati.

  6. Elimina il pool di CA come descritto in Eliminazione di un pool di CA.

    Tieni presente che per disattivare l'ultima CA abilitata nel pool di CA a cui fa riferimento la configurazione di emissione dei certificati o per eliminare del tutto il pool di CA a cui fa riferimento, devi prima eliminare ogni configurazione di emissione dei certificati che fa riferimento a quel pool di CA.

Passaggi successivi