Esegui il deployment di un certificato autogestito globale


Questo tutorial mostra come utilizzare Certificate Manager per eseguire il deployment di un certificato autogestito globale.

I seguenti bilanciatori del carico supportano i certificati autogestiti globali:

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

Se vuoi eseguire il deployment in bilanciatori del carico a livello di regione o tra regioni, consulta quanto segue:

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

  • Carica un certificato autogestito in Gestore 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 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 APIs.

    Enable the APIs

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

    gcloud init

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.

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. Se hai creato un bilanciatore del carico delle applicazioni esterno, prendi nota del nome della mappa URL perché ti servirà più avanti in questo tutorial.

Se non hai ancora creato il bilanciatore del carico, consulta le seguenti pagine per crearne uno:

Creare una chiave privata e un certificato

Per creare una chiave privata e un certificato:

  1. Utilizza un'autorità di certificazione (CA) di terze parti attendibile per emettere il certificato insieme alla chiave associata.

  2. Verifica che il certificato sia correttamente collegato e considerato attendibile a livello di radice.

  3. Prepara i seguenti file con codifica PEM:

    • Il file del certificato (CRT)
    • Il file della chiave privata corrispondente (KEY)

Per informazioni su come richiedere e convalidare un certificato, vedi Creare una chiave privata e un certificato.

Caricare un certificato autogestito in Gestore certificati

Per caricare il certificato in Gestore dei certificati, procedi come segue:

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

  7. In Tipo di certificato, seleziona Crea certificato autogestito.

  8. Per il campo Certificato, esegui una delle seguenti operazioni:

    • Fai clic sul pulsante Carica e seleziona il file del certificato in formato PEM.
    • Copia e incolla i contenuti di un certificato in formato PEM. I contenuti devono iniziare con -----BEGIN CERTIFICATE----- e terminare con -----END CERTIFICATE-----.
  9. Per il campo Certificato chiave privata, esegui una delle seguenti operazioni:

    • Fai clic sul pulsante Carica e seleziona la chiave privata. La chiave privata deve essere in formato PEM e non protetta con una passphrase.
    • Copia e incolla i contenuti di una chiave privata in formato PEM. Le chiavi private devono iniziare con -----BEGIN PRIVATE KEY----- e terminare con -----END PRIVATE KEY-----.
  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.

    Il nuovo certificato viene visualizzato nell'elenco dei certificati.

gcloud

Per creare un certificato autogestito globale, utilizza il comando certificate-manager certificates create:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE"

Sostituisci quanto segue:

  • CERTIFICATE_NAME: il nome del certificato.
  • CERTIFICATE_FILE: il percorso e il nome del file del certificato CRT.
  • PRIVATE_KEY_FILE: il percorso e il nome del file della chiave privata KEY.

Terraform

Per caricare un certificato con gestione indipendente, puoi utilizzare una risorsa google_certificate_manager_certificate con il blocco self_managed.

API

Carica il certificato inviando una richiesta POST al metodo certificates.create come segue:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
  self_managed: {
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud.
  • CERTIFICATE_NAME: il nome del certificato.
  • PEM_CERTIFICATE: il certificato PEM.
  • PEM_KEY: la chiave PEM.

Esegui il deployment del certificato autogestito su un bilanciatore del carico

Per eseguire il deployment del certificato autogestito globale, utilizza una mappa dei certificati.

Creare una mappa di certificati

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

gcloud

Per creare una mappa dei 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
  }
}

Creare una voce della mappa di certificati

Crea una voce della 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 di certificati.
  • CERTIFICATE_MAP_NAME: il nome della mappa di certificati a cui è associata la voce della mappa di certificati.
  • CERTIFICATE_NAME: il nome del certificato da associare alla voce della mappa di certificati.
  • HOSTNAME: il nome host da associare alla voce della mappa dei certificati.

    Se crei certificati con un dominio jolly, specifica anche il nome host con un carattere jolly, ad esempio *.example.com.

Terraform

Per creare una voce della mappa dei certificati, puoi utilizzare 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
}

Verifica che la voce della mappa dei certificati sia attiva

Verifica che la voce della mappa dei certificati sia attiva prima di allegare la mappa dei certificati corrispondente al proxy di destinazione.

Per verificare la voce della mappa di 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 di certificati.
  • CERTIFICATE_NAME: il nome del certificato da associare alla voce della mappa di 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 target o a un proxy target esistente.

gcloud

Per collegare la mappa dei certificati a un nuovo proxy target, 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 prendi nota del 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 il seguente comando per verificarlo:

gcloud compute target-https-proxies list

Terraform

Per allegare la mappa di 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.

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 o scollega la mappa dei certificati dal proxy.

    Per eliminare la mappa dei certificati, esegui il seguente comando:

    gcloud compute target-https-proxies delete PROXY_NAME
    

    Se vuoi mantenere il proxy HTTPS di destinazione, scollega la mappa dei certificati dal proxy. Prima di scollegare la mappa dei 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. 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 il seguente 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 di certificati.
    • CERTIFICATE_MAP_NAME: il nome della mappa di 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 caricato:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
    

    Sostituisci CERTIFICATE_NAME con il nome del certificato.

Passaggi successivi