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

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

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

Configura l'integrazione del servizio CA con Gestore certificati

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 progettoGoogle 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 Certificate Manager il ruolo CA Service Certificate Requester (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.certificateRequester
    

    Sostituisci quanto segue:

    • CA_POOL: l'ID del pool di CA di destinazione.
    • LOCATION: la posizione Google Cloud di destinazione.
    • SERVICE_ACCOUNT: il nome completo del 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 scheda Configurazioni di emissione nella pagina Certificate Manager.

      Vai a Certificate Manager

    2. Fai clic su Crea. Viene visualizzata la pagina Crea una configurazione dell'emissione dei certificati.

    3. Nel campo Nome, inserisci un nome univoco per la configurazione di emissione del certificato.

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

    5. Per Località, seleziona Globale.

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

    7. (Facoltativo) In Percentuale della finestra di rotazione, specifica la percentuale della durata del certificato in cui inizia la procedura di rinnovo. Per trovare l'intervallo di valori validi, consulta Percentuale della finestra di durata e rotazione.

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

    9. Nell'elenco Pool di CA, seleziona il nome del pool di CA da assegnare a questa risorsa di configurazione dell'emissione di 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 dell'emissione di certificati.
    • CA_POOL: il percorso e il nome completi della risorsa del pool di CA che vuoi assegnare a questa risorsa di configurazione dell'emissione di certificati.

    Per saperne di più 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 dall'istanza del servizio CA

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

Console

  1. Nella console Google Cloud , vai alla pagina Certificate Manager.

    Vai a Certificate Manager

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

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

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

  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. Per 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 globale 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 esempio myorg.example.com.
  • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione dell'emissione di 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",
 }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del Google Cloud progetto.
  • 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 di certificati che fa riferimento al pool di 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 diversi minuti prima che lo stato del certificato diventi ACTIVE.

Console

  1. Nella console Google Cloud , vai alla pagina Certificate Manager.

    Vai a Certificate Manager

  2. 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 Risolvere 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 di certificati

Crea una mappa di certificati che faccia riferimento alla voce mappa di certificati associata al tuo certificato:

gcloud

Per creare una mappa di 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.

resource "google_certificate_manager_certificate_map" "certificate_map" {
  name        = "${local.name}-certmap-${random_id.tf_prefix.hex}"
  description = "${local.domain} certificate map"
  labels = {
    "terraform" : true
  }
}

Crea una voce mappa di certificati

Crea una voce 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 dei certificati.
  • CERTIFICATE_MAP_NAME: il nome della mappa di certificati a cui è collegata la voce della mappa di 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.com e *.example.com. Inoltre, devi specificare due voci della mappa dei certificati: una per example.com e 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.

resource "google_certificate_manager_certificate_map_entry" "first_entry" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = local.domain
}

Per creare una voce della mappa dei certificati con un dominio jolly, utilizza una risorsa google_certificate_manager_certificate_map_entry.

resource "google_certificate_manager_certificate_map_entry" "second_entry" {
  name        = "${local.name}-second-entity-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.certificate_map.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.root_cert.id]
  hostname     = "*.${local.domain}"
}

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 nuovo proxy di destinazione o a uno esistente.

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 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 annota il 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 dal servizio CA

Per la procedura di risoluzione dei problemi, vedi Problemi relativi ai certificati emessi da un'istanza del 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.

    Vedi Pulizia della configurazione di un bilanciatore del carico.

  2. Elimina o scollega la mappatura dei certificati dal proxy.

    Per eliminare la mappa dei certificati, esegui questo comando:

    gcloud compute target-https-proxies delete PROXY_NAME
    

    Se vuoi conservare il proxy HTTPS di destinazione, scollega la mappa dei certificati dal proxy.

    • Se al proxy sono collegati direttamente certificati TLS (SSL), il distacco della mappa dei certificati fa sì che il proxy riprenda a utilizzare questi certificati TLS (SSL) collegati direttamente.
    • Se non sono collegati certificati TLS (SSL) 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 questo comando:

    gcloud compute target-https-proxies update PROXY_NAME \
        --clear-certificate-map
    

    Sostituisci PROXY_NAME con il nome del proxy di destinazione.

  3. 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 dei certificati.
    • CERTIFICATE_MAP_NAME: il nome della mappa dei certificati.
  4. Elimina la mappa dei certificati:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Sostituisci CERTIFICATE_MAP_NAME con il nome della mappa dei certificati.

  5. Elimina il certificato gestito da Google:

    Console

    1. Nella console Google Cloud , vai alla pagina Certificate Manager.

      Vai a Certificate Manager

    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.

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

    Console

    1. Nella console Google Cloud , vai alla scheda Configurazioni di emissione nella pagina Certificate Manager.

      Vai a Certificate Manager

    2. Seleziona la casella di controllo della risorsa di configurazione dell'emissione che vuoi eliminare.

    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 del certificato di destinazione.

  7. Elimina il pool di CA.

    Per eliminare il pool di CA o per disattivare l'ultima CA abilitata in un pool di CA a cui fa riferimento una risorsa di configurazione dell'emissione di certificati, elimina tutte le risorse di configurazione dell'emissione di certificati che fanno riferimento al pool di CA. Per maggiori informazioni, vedi Elimina un pool di CA.