Esegui il deployment di un certificato gestito da Google a livello di regione con Certificate Authority Service


Questo tutorial descrive come utilizzare Gestore certificati per eseguire il deployment di un certificato gestito da Google a livello di regione con CA Service in un Application Load Balancer esterno regionale o in un Application Load Balancer interno regionale.

Obiettivi

Questo tutorial ti mostra come completare le attività seguenti:

  • Creare un certificato gestito da Google con CA Service 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.

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: necessario per creare e gestire il proxy di destinazione HTTPS.
    • Amministratore CA Service: necessario per eseguire azioni in CA Service.

    Per ulteriori informazioni, consulta le seguenti risorse:

  3. Abilita l'API Certificate Manager

  4. Abilita l'API CA Service.

  5. Crea un pool di CA. Devi creare e abilitare almeno una CA in questo pool di CA.

Configurare l'integrazione di CA Service con Gestore certificati

Configura Gestore certificati per l'integrazione con CA Service nel seguente modo:

  1. Crea un account di servizio Certificate Manager nel progetto Google Cloud di destinazione:

    gcloud beta services identity create \
        --service=certificatemanager.googleapis.com \
        --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del progetto Google Cloud di destinazione.

Il comando restituisce il nome dell'identità di servizio creata, come mostrato nell'esempio seguente:

service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
  1. Concedi all'account di servizio Gestore certificati il ruolo Richiedente certificato servizio CA all'interno del pool di CA di destinazione nel seguente modo:

    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 località Google Cloud di destinazione. Devi specificare la stessa località del pool di CA, della risorsa di configurazione dell'emissione del certificato e del certificato gestito.
    • SERVICE_ACCOUNT: il nome completo dell'account di servizio creato nel passaggio 1.
  2. Crea una risorsa di configurazione dell'emissione del certificato per il pool di CA:

    gcloud beta certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
        --ca-pool=CA_POOL \
        --location=LOCATION> \
        [--lifetime=CERTIFICATE_LIFETIME] \
        [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \
        [--key-algorithm=KEY_ALGORITHM]
    

    Sostituisci quanto segue:

    • ISSUANCE_CONFIG_NAME: il nome univoco della risorsa di configurazione di emissione del certificato.
    • CA_POOL: il percorso completo e il nome del pool di CA che vuoi assegnare a questa risorsa di configurazione dell'emissione dei certificati.
    • LOCATION: la località Google Cloud di destinazione. Devi specificare la stessa località del pool di CA, della risorsa di configurazione dell'emissione del certificato e del certificato gestito.
    • CERTIFICATE_LIFETIME: la durata del certificato in giorni. I valori validi sono compresi tra 21 e 30 giorni nel formato di durata standard. Il valore predefinito è 30 giorni (30D). Questa impostazione è facoltativa.
    • ROTATION_WINDOW_PERCENTAGE: la percentuale della durata del certificato in cui viene attivato un rinnovo. Il valore predefinito è 66%. Devi impostare la percentuale della finestra di rotazione in relazione alla durata del certificato in modo che il rinnovo avvenga almeno sette giorni dopo l'emissione del certificato e almeno sette giorni prima della scadenza. Questa impostazione è facoltativa.
    • KEY_ALGORITHM: l'algoritmo di crittografia utilizzato per generare la chiave privata. I valori validi sono ecdsa-p256 o rsa-2048. Il valore predefinito è rsa-2048. Questa impostazione è facoltativa.

Per ulteriori informazioni sulle risorse di configurazione per l'emissione dei certificati, consulta Gestire le configurazioni di emissione dei certificati.

Crea un certificato gestito da Google a livello di regione

Crea un certificato gestito da Google a livello di regione emesso dal servizio CA utilizzando la risorsa di configurazione di emissione del certificato creata nel passaggio precedente:

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. In Località, scegli A livello di regione.

  7. Nell'elenco Regione, seleziona una regione.

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

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

  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 Configurazione di emissione di certificati, seleziona il nome della risorsa di configurazione di emissione dei certificati che fa riferimento al pool di CA di destinazione.

  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

Esegui questo comando:

gcloud beta certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config="ISSUANCE_CONFIG_NAME" \
    --location="LOCATION"

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.
  • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione di emissione del certificato che fa riferimento al pool di CA di destinazione.
  • LOCATION: la località Google Cloud di destinazione. Devi specificare la stessa località del pool di CA, della risorsa di configurazione dell'emissione del certificato e del certificato gestito.

API

Crea il certificato effettuando una richiesta POST al metodo certificates.create come segue:

POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?certificate_id=CERTIFICATE_NAME"
{
 name: "/projects/example-project/locations/LOCATION/certificates/my-cert",
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "issuanceConfig": "ISSUANCE_CONFIG_NAME",
 },
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud di destinazione.
  • LOCATION: la località Google Cloud di destinazione. Devi specificare la stessa località del pool di CA, della risorsa di configurazione dell'emissione del certificato e del certificato gestito.
  • CERTIFICATE_NAME: un nome univoco del certificato.
  • DOMAIN_NAME: il dominio di destinazione del certificato. Il nome di dominio deve essere un nome di dominio completo, come example.com, www.example.com.
  • ISSUANCE_CONFIG_NAME: il nome della risorsa di configurazione di emissione del certificato che fa riferimento al pool di CA di destinazione.

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

Verifica che il certificato sia attivo

Utilizza il comando seguente per verificare che il certificato sia attivo prima di eseguirne il deployment nel bilanciatore del carico. Potrebbero essere necessari diversi minuti prima che lo stato del certificato passi a ACTIVE.

gcloud beta certificate-manager certificates describe CERTIFICATE_NAME \
    --location=LOCATION

Sostituisci quanto segue:

  • CERTIFICATE_NAME: un nome univoco del certificato.
  • LOCATION: la località Google Cloud di destinazione. Devi specificare la stessa località del pool di CA, della risorsa di configurazione dell'emissione del certificato e del certificato gestito.

Il comando restituisce un 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/mylocation/issuanceConfigs/myissuanceConfig
state: ACTIVE
name: projects/myproject/locations/mylocation/certificates/mycertificate
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
  -   myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Esegui il deployment del certificato gestito da Google a livello di regione su un bilanciatore del carico

Per eseguire il deployment del certificato gestito a livello di regione da Google, crea un proxy di destinazione HTTPS e collega il certificato.

Crea il proxy di destinazione HTTPS

Per creare il proxy di destinazione HTTPS e collegare il certificato, esegui questo comando:

gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP \
    --region=REGION \
    --certificate-manager-certificates=CERTIFICATE_NAME

Sostituisci quanto segue:

  • PROXY_NAME: un nome univoco del proxy.
  • URL_MAP: il nome della mappa URL. Hai creato la mappa URL quando hai creato il bilanciatore del carico.
  • REGION: la regione in cui stai creando il proxy di destinazione HTTPS.
  • CERTIFICATE_NAME: il nome del certificato.

Per verificare se il proxy di destinazione è stato creato, esegui questo comando:

gcloud compute target-https-proxies list

Creare una regola di forwarding

Configura una regola di forwarding e completa la configurazione del bilanciatore del carico.

Esegui la pulizia

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

  1. Elimina il certificato gestito da Google:

    gcloud certificate-manager certificates delete CERTIFICATE_NAME
        --location=LOCATION
    

Sostituisci quanto segue:

  • CERTIFICATE_NAME: il nome del certificato
  • LOCATION: la località Google Cloud di destinazione
  1. Elimina la risorsa di configurazione dell'emissione del certificato:

    gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME
        --location=LOCATION
    

Sostituisci quanto segue:

  • CERTIFICATE_NAME: il nome del certificato
  • LOCATION: la località Google Cloud di destinazione
  1. Elimina il pool di CA come descritto in Eliminare un pool di CA.

    Tieni presente che per disabilitare l'ultima CA abilitata nel pool di CA a cui viene fatto riferimento nella risorsa di configurazione di emissione del certificato o per eliminare completamente il pool di CA di riferimento, devi prima eliminare ogni risorsa di configurazione di emissione del certificato che fa riferimento al pool di CA.

Risoluzione dei problemi

Per la procedura di risoluzione dei problemi, consulta Problemi relativi ai certificati emessi da un'istanza di CA Service.

Passaggi successivi