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 nei bilanciatori del carico regionali o interregionali, consulta quanto segue:

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

  • Carica un certificato autogestito in Certificate Manager.
  • Esegui il deployment del certificato in un bilanciatore del carico supportato utilizzando un proxy HTTPS di destinazione.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Installa Google Cloud CLI.

  6. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  7. Per inizializzare gcloud CLI, esegui questo comando:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Installa Google Cloud CLI.

  12. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  13. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Ruoli obbligatori

Per completare le attività di questo tutorial, assicurati di disporre dei seguenti ruoli:

  • Certificate Manager Owner (roles/certificatemanager.owner)

    Necessario per creare e gestire le risorse di Certificate Manager.

  • Amministratore bilanciatore del carico Compute (roles/compute.loadBalancerAdmin) o Compute Network Admin (roles/compute.networkAdmin)

    Obbligatorio per creare e gestire il proxy HTTPS di destinazione.

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 creato il bilanciatore del carico, consulta le seguenti pagine per crearne uno:

Crea 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 concatenato correttamente e che la radice sia attendibile.

  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.

Carica un certificato autogestito in Certificate Manager

Per caricare il certificato in Certificate Manager, procedi nel seguente modo:

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 del 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 della 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 da 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 file del file del certificato CRT.
  • PRIVATE_KEY_FILE: il percorso e il nome file del file della chiave privata KEY.

Terraform

Per caricare un certificato autogestito, 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 tuo Google Cloud progetto.
  • CERTIFICATE_NAME: il nome del certificato.
  • PEM_CERTIFICATE: il PEM del certificato.
  • PEM_KEY: il PEM della chiave.

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 dei certificati che faccia riferimento alla voce della mappa dei 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 della mappa dei certificati

Crea una voce della mappa dei certificati e associala al certificato e alla mappa dei 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 è associata 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 jolly sia un dominio principale, specifica il nome host con un dominio principale e un 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.