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


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

Per un confronto dei tipi di autorizzazione del dominio supportati, vedi Dominio autorizzazione.

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

  • 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 Gestione certificati.

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

  • Crea un certificato gestito da Google emesso da un'autorità di certificazione pubblicamente attendibile con l'autorizzazione del bilanciatore del carico tramite Gestore certificati.
  • Esegui il deployment del certificato su un bilanciatore del carico supportato utilizzando un protocollo HTTPS di destinazione proxy.

Per ulteriori informazioni sul processo di deployment dei certificati, consulta Panoramica.

Se stai seguendo i passaggi di questo tutorial per eseguire il deployment di un certificato per dominio che gestisce già il traffico di produzione, tieni presente che il traffico il dominio verrà interrotto durante il provisioning del certificato sia attivata sul bilanciatore del carico corrispondente.

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 Certificate Manager: obbligatorio per creare e e gestire le risorse del gestore certificati.
    • Amministratore bilanciatore del carico Compute o Amministratore rete Compute: obbligatorio 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 autorizzazione del bilanciatore del carico

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

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

Per ulteriori informazioni, consulta la sezione Autorizzazioni e ruoli.

Console

  1. Nella console Google Cloud, vai alla pagina Gestore 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. In corrispondenza di località, scegli Globale.

  7. In Ambito, scegli Predefinito.

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

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

  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. In Tipo di autorizzazione, scegli Autorizzazione bilanciatore del carico.

  12. Specifica un'etichetta da associare al certificato. Puoi aggiungere più di un'etichetta, se necessario. Per aggiungere un'etichetta, fai clic sull'icona Aggiungi etichetta e specifica key e value per l'etichetta.

  13. Fai clic su Crea. Verifica che il nuovo certificato sia presente 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 del target delimitato da virgole domini per questo certificato. Ogni nome di dominio deve essere un nome completo nome di dominio, ad esempio myorg.example.com.

Terraform

Utilizza un google_certificate_manager_certificate risorsa.

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 all'indirizzo 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 lo descrive certificato.
  • DOMAIN_NAME: il dominio di destinazione per questo 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 Deployment Panoramica.

Esegui il deployment del certificato su un bilanciatore del carico

Completa i passaggi di questa sezione per eseguire il deployment del certificato gestito da Google creato nei passaggi precedenti.

Crea una mappa di certificati

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

gcloud

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Sostituisci CERTIFICATE_MAP_NAME con il nome del target mappa di certificati.

Terraform

Utilizza un google_certificate_manager_certificate_map risorsa.

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 di certificati e associarlo al tuo certificate come nonché la mappa di 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: un nome univoco del voce mappa di certificati
  • CERTIFICATE_MAP_NAME: il nome della mappa di certificati a cui è collegata questa voce di mappa di certificati
  • CERTIFICATE_NAME: il nome del certificato che da associare a questa voce di mappa di certificati
  • HOSTNAME: il nome host che vuoi associare con questa voce della mappa di certificati

Terraform

Utilizza un google_certificate_manager_certificate_map_entry risorsa.

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

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 del target voce mappa di certificati
  • CERTIFICATE_MAP_NAME: il nome del certificato mappato a allegata da questa voce di 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.

Console

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

Vai al target proxy

  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 un google_compute_target_https_proxy risorsa.

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 esistono certificati TLS (SSL) esistenti collegati direttamente al proxy, il proxy dà la preferenza ai certificati a cui fa riferimento la mappa di certificati tramite i certificati TLS (SSL) direttamente collegati.

Attendi l'attivazione del certificato

Dopo aver collegato il certificato al proxy di destinazione, potrebbero essere necessarie fino diverse ore affinché il certificato venga emesso e il suo stato cambia in ACTIVE. Quando lo stato è ACTIVE, il caricamento potrebbe richiedere fino a 30 minuti al bilanciatore del carico di rete per iniziare a utilizzare il certificato.

Usa il seguente comando per verificare lo stato del certificato:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Sostituisci CERTIFICATE_NAME con il nome del target Certificato 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 dopo diverse ore lo stato del certificato non è passato a ACTIVE, controlla le seguenti:

Per ulteriori procedure di risoluzione dei problemi, consulta l'argomento Risoluzione dei problemi relativi a SSL certificati.

Esegui la pulizia

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

  1. Scollega la mappa di certificati dal proxy.

    Prima di scollegare la mappa di certificati, tieni presente quanto segue:

    • Se esistono certificati TLS (SSL) collegati direttamente al proxy, lo scollegamento della mappa di certificati fa sì che il proxy riprenda a utilizzare quelle certificati TLS (SSL) direttamente collegati.
    • Se non esistono certificati TLS (SSL) collegati direttamente al proxy, la mappa di certificati non può essere scollegata dal proxy. Devi prima collegare almeno un certificato TLS (SSL) direttamente al proxy prima di poter e 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 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 del target voce mappa di certificati
    • CERTIFICATE_MAP_NAME: il nome del target mappa di certificati
  3. Elimina la mappa di certificati:

    gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
    

    Sostituisci CERTIFICATE_MAP_NAME con il nome del target mappa di certificati.

  4. Elimina il certificato gestito da Google:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Sostituisci CERTIFICATE_NAME con il nome del target certificato.

Passaggi successivi