Esegui il deployment di un certificato globale gestito da Google con l'autorizzazione del bilanciatore del carico


Questo tutorial illustra il processo di deployment dei certificati utilizzando un certificato gestito da Google con l'autorizzazione del bilanciatore del carico come esempio.

Per un confronto dei tipi di autorizzazione di dominio supportati, consulta Autorizzazione di dominio.

I seguenti bilanciatori del carico supportano i certificati gestiti da Google con autorizzazione del bilanciatore del carico:

  • Bilanciatore del carico delle applicazioni esterno globale
  • Bilanciatore del carico delle applicazioni classico
  • Bilanciatore del carico di rete proxy esterno globale

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

Obiettivi

Questo tutorial ti mostra come completare le attività seguenti:

  • Crea un certificato gestito da Google emesso da una CA attendibile pubblicamente con autorizzazione del bilanciatore del carico utilizzando 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.

Se stai seguendo i passaggi di questo tutorial per eseguire il deployment di un certificato per un dominio che già gestisce traffico di produzione, tieni presente che il traffico per quel dominio verrà interrotto mentre viene eseguito il provisioning e l'attivazione del certificato sul bilanciatore del carico corrispondente.

Prima di iniziare

  1. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

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

    • Proprietario gestore certificati: obbligatorio per creare e gestire le risorse del gestore certificati.
    • Amministratore bilanciatore del carico Compute o Amministratore rete Compute: necessario per creare e gestire il proxy di destinazione HTTPS.
    • Amministratore DNS: obbligatorio se vuoi utilizzare Cloud DNS come soluzione DNS.

    Per ulteriori informazioni, consulta le seguenti risorse:

Crea un certificato gestito da Google con l'autorizzazione del bilanciatore del carico

Per creare un certificato gestito da Google con autorizzazione del bilanciatore del carico, completa i passaggi descritti in questa sezione.

Per specificare più nomi di dominio per il certificato, fornisci un elenco delimitato da virgole di nomi di dominio di destinazione per il certificato.

Per ulteriori informazioni, consulta Autorizzazioni e ruoli.

Console

  1. Nella console Google Cloud, vai alla pagina Gestore dei 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 ti aiuta a identificare un certificato specifico in un secondo momento.

  6. Per Località, scegli Globale.

  7. Per Ambito, scegli Predefinito.

  8. Per Tipo di certificato, scegli Crea certificato gestito da Google.

  9. Per Tipo di autorità di certificazione, scegli Pubblica.

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

  11. In Tipo di autorizzazione, scegli Autorizzazione bilanciatore del carico.

  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

gcloud certificate-manager certificates create CERTIFICATE_NAME \
--domains="DOMAIN_NAMES"

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.

Terraform

Utilizza una risorsa google_certificate_manager_certificate.

resource "google_certificate_manager_certificate" "default" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "Cert with LB authorization"
  managed {
    domains = [local.domain]
  }
  labels = {
    "terraform" : true
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

API

Crea il certificato effettuando 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"],
 }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud di destinazione.
  • CERTIFICATE_NAME: un nome univoco che descrive questo certificato.
  • DOMAIN_NAME: il dominio di destinazione del certificato. Il nome di dominio deve essere un nome di dominio completo, come myorg.example.com.

Per una panoramica del processo di deployment dei certificati, consulta Panoramica del deployment.

esegui il deployment del certificato su un bilanciatore del carico

Completa i passaggi in questa sezione per eseguire il deployment su un bilanciatore del carico del certificato gestito da Google che hai creato nei passaggi precedenti.

Crea una mappa di certificati

Crea una mappa di certificati che fa riferimento alla voce della mappa di certificati associata al tuo certificato.

gcloud

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Sostituisci CERTIFICATE_MAP_NAME con il nome della mappa dei certificati di destinazione.

Terraform

Utilizza una risorsa google_certificate_manager_certificate_map.

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

Crea una voce della mappa di certificati

Crea una voce della mappa dei certificati e associala al tuo certificato e alla mappa dei certificati.

gcloud

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 dei certificati
  • CERTIFICATE_MAP_NAME: il nome della mappa di certificati a cui è allegata la voce della mappa di certificati
  • CERTIFICATE_NAME: il nome del certificato che vuoi associare a questa voce della mappa di certificati
  • HOSTNAME: il nome host da associare a questa voce della mappa di certificati

Terraform

Utilizza una risorsa google_certificate_manager_certificate_map_entry.

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

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 destinazione
  • CERTIFICATE_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 dei certificati configurata al proxy di destinazione.

Console

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

Vai a Proxy di destinazione

  1. Prendi nota del nome del proxy di destinazione.

  2. 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`: the name of the target proxy
*   `CERTIFICATE_MAP_NAME`: the name of the certificate
    map referencing your certificate map entry and its associated
    certificate

Terraform

Utilizza una risorsa google_compute_target_https_proxy.

resource "google_compute_target_https_proxy" "default" {
  name            = "test-proxy"
  certificate_map = "//certificatemanager.googleapis.com/${google_certificate_manager_certificate_map.default.id}"
  url_map         = google_compute_url_map.default.id
}

Se sono presenti certificati TLS (SSL) esistenti collegati direttamente al proxy, il proxy dà la priorità ai certificati a cui fa riferimento la mappa di certificati rispetto ai certificati TLS (SSL) direttamente collegati.

Attendi che il certificato venga attivato

Dopo aver collegato il certificato al proxy di destinazione, potrebbero trascorrere fino a diverse ore prima che il certificato venga emesso e lo stato passi a ACTIVE. Quando lo stato è ACTIVE, potrebbe essere necessario attendere fino a 30 minuti prima che il bilanciatore del carico inizi a utilizzare il certificato.

Utilizza il seguente comando per verificare lo stato del certificato:

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:
  authorizationAttemptInfo:
  -   domain: myorg.example.com
    state: AUTHORIZED
  domains:
  -   myorg.example.com
    state: ACTIVE
name: projects/myProject/locations/global/certificates/myCert
sanDnsnames:
  -   myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Se lo stato del certificato non è cambiato in ACTIVE dopo diverse ore, controlla quanto segue:

Per ulteriori passaggi di risoluzione dei problemi, consulta la sezione Risoluzione dei problemi relativi ai certificati SSL.

Esegui la pulizia

Per ripristinare 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 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 sono stati collegati certificati TLS (SSL) 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
    
  2. 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 destinazione
    • CERTIFICATE_MAP_NAME: il nome della mappa 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:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Sostituisci CERTIFICATE_NAME con il nome del certificato di destinazione.

Passaggi successivi