Esegui il deployment di un certificato gestito da Google in più regioni con Certificate Authority Service


Questo tutorial mostra come utilizzare Certificate Manager per eseguire il deployment di un certificato gestito da Google a livello globale con Certificate Authority Service in un bilanciatore del carico delle applicazioni interno cross-region.

Se vuoi eseguire il deployment su bilanciatori del carico esterni globali o bilanciatori del carico regionali, consulta quanto segue:

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

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

Prima di iniziare

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine, Certificate Manager, Certificate Authority APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Abilita l'API CA Service.
  13. Crea un pool di CA. Devi creare e attivare almeno una CA in questo pool di CA.

Prima di seguire i passaggi di questo tutorial, devi prendere nota di quanto segue:

  • I certificati creati con Certificate Authority Service non sono considerati attendibili pubblicamente. Per emettere certificati considerati attendibili pubblicamente, crea certificati con autorizzazione DNS o autorizzazione bilanciatore del carico.
  • Se nel pool di CA di destinazione è in vigore un regolamento per l'emissione di certificati, 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 non supportate da Certificate Manager. In questo caso, l'addebito avviene perché il certificato è stato emesso, anche se non è completamente compatibile con Certificate Manager.
  • I certificati TLS gestiti da Google a livello globale possono essere configurati per essere emessi da un pool di CA in qualsiasi regione.

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.

  • CA Service Admin (roles/privateca.admin)

    Obbligatorio per eseguire azioni all'interno del servizio CA.

Per ulteriori informazioni, consulta le seguenti risorse:

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. Prendi nota del nome della mappa di URL, perché ti servirà più avanti in questo tutorial.

Se non hai creato un bilanciatore del carico delle applicazioni interno tra regioni, consulta Configurare un bilanciatore del carico delle applicazioni interno tra regioni con backend di gruppi di istanze VM.

Configurare l'integrazione di CA Service con Certificate Manager

Per integrare il servizio CA con Certificate Manager, segui questi passaggi:

  1. Nel progetto Google Cloud di destinazione, crea un account di servizio Certificate Manager:

    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 l'esempio di seguito:

    service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
    
  2. Concedi all'account di servizio Certificate Manager il ruolo CA Service Certificate Requester (roles/privateca.certificateRequester) nel pool di CA di destinazione:

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --location LOCATION \
        --member "serviceAccount:SERVICE_ACCOUNT" \
        --role roles/privateca.certificateRequester
    

    Sostituisci quanto segue:

    • CA_POOL: l'ID del pool di CA di destinazione.
    • LOCATION: la località Google Cloud di destinazione.
    • SERVICE_ACCOUNT: il nome completo dell'account di servizio che hai creato nel passaggio 1.
  3. Crea una risorsa di configurazione dell'emissione dei certificati per il tuo pool di CA:

    Console

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

      Vai a Gestore certificati

    2. Nella scheda Configurazioni di emissione, fai clic su Crea.

    3. Nel campo Nome, inserisci un nome univoco per la configurazione di emissione dei certificati.

    4. (Facoltativo) Nel campo Descrizione, inserisci una descrizione per la configurazione di emissione.

    5. Per Località, seleziona Globale.

    6. (Facoltativo) Nel campo Validità, specifica la durata in giorni del certificato emesso. Il valore deve essere compreso tra 21 e 30 giorni (inclusi).

    7. (Facoltativo) In Percentuale finestra di rotazione, specifica la percentuale della durata del certificato all'inizio del processo di rinnovo. Per trovare l'intervallo di valori validi, consulta la sezione Percentuale della finestra di rotazione e del lifetime.

    8. (Facoltativo) Dall'elenco Algoritmo chiave, seleziona l'algoritmo chiave da utilizzare per la generazione della chiave privata.

    9. Dall'elenco Pool di CA, seleziona il nome del pool di CA da assegnare a questa risorsa di configurazione dell'emissione dei certificati.

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

    11. Fai clic su Crea.

    gcloud

    gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL
    

    Sostituisci quanto segue:

    • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione per il rilascio dei certificati.
    • CA_POOL: il percorso completo e il nome del pool di CA che vuoi assegnare a questa risorsa di configurazione dell'emissione dei certificati.

    Per ulteriori informazioni sulle risorse di configurazione dell'emissione dei certificati, consulta Gestire le risorse di configurazione dell'emissione dei certificati.

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

Per creare un certificato gestito da Google emesso dalla tua istanza CA Service:

Console

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

    Vai a Gestore certificati

  2. Nella scheda Certificati, fai clic su Aggiungi certificato.

  3. Nel campo Nome certificato, inserisci un nome univoco per il certificato.

  4. (Facoltativo) Nel campo Descrizione, inserisci una descrizione per il certificato. La descrizione ti consente di identificare il certificato.

  5. Per Località, seleziona Globale.

  6. In Ambito, seleziona Tutte le regioni.

  7. In Tipo di certificato, seleziona Crea un certificato gestito da Google.

  8. In Tipo di autorità di certificazione, seleziona Privato.

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

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

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

  12. Fai clic su Crea.

    Il nuovo certificato viene visualizzato nell'elenco dei certificati.

gcloud

Per creare un certificato gestito da Google tra regioni con Certificate Authority Service, utilizza il certificate-manager certificates create comando con i flag issuance-config e --scope:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config=ISSUANCE_CONFIG_NAME \
    --scope=all-regions

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 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 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",
  "scope": "ALL_REGIONS"
 }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del 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 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.

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

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

    Vai a Gestore certificati

  2. 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:
  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 Risolvere i problemi di Gestore dei certificati.

Esegui il deployment del certificato su un bilanciatore del carico

Per eseguire il deployment del certificato globale gestito da Google, collegalo direttamente al proxy di destinazione.

Allega il certificato direttamente al proxy di destinazione

Puoi allegare il certificato a un nuovo proxy di destinazione o a uno esistente.

Per collegare il certificato a un nuovo proxy target, utilizza il gcloud compute target-https-proxies create comando:

gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP \
    --certificate-manager-certificates=CERTIFICATE_NAME \
    --global

Sostituisci quanto segue:

  • PROXY_NAME: il nome del proxy di destinazione.
  • URL_MAP: il nome della mappa di URL. Hai creato la mappa URL quando hai creato il bilanciatore del carico.
  • CERTIFICATE_NAME: il nome del certificato.

Per collegare il certificato a un proxy HTTPS di destinazione esistente, utilizza il gcloud compute target-https-proxies update comando. 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 \
    --global \
    --certificate-manager-certificates=CERTIFICATE_NAME

Dopo aver creato o aggiornato il proxy di destinazione, esegui il seguente comando per verificarlo:

gcloud compute target-https-proxies list

Risoluzione dei problemi relativi ai certificati emessi dal servizio CA

Per la procedura di risoluzione dei problemi, consulta Problemi relativi ai certificati emessi da un'istanza di servizio CA.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, eliminale.

  1. Elimina il bilanciatore del carico e le relative risorse.

    Consulta Pulire la configurazione di un bilanciatore del carico.

  2. Elimina il certificato gestito da Google:

    Console

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

      Vai a Gestore certificati

    2. Nella scheda Certificati, seleziona la casella di controllo del 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.

  3. 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 risorsa di configurazione di emissione del certificato.

    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 della risorsa di configurazione di emissione dei certificati di destinazione.

  4. Elimina il pool di CA.

    Per eliminare il pool di CA o per disattivare l'ultima CA abilitata in un pool di CA indicata come riferimento da una risorsa di configurazione di emissione dei certificati, elimina tutte le configurazioni di emissione dei certificati che fanno riferimento al pool di CA. Per ulteriori informazioni, vedi Eliminare un pool di CA.

Passaggi successivi