Esegui il deployment di un certificato gestito da Google a livello di regione


Questo tutorial descrive come utilizzare Gestore certificati per eseguire il deployment di un certificato a livello di regione gestito da Google su un bilanciatore del carico delle applicazioni esterno regionale o su un bilanciatore del carico delle applicazioni interno regionale.

Per eseguire il deployment di un certificato in un bilanciatore del carico delle applicazioni esterno regionale o in un bilanciatore del carico delle applicazioni interno regionale, collega il certificato direttamente al proxy di destinazione.

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

  • Crea un certificato gestito da Google emesso da un'autorità di certificazione pubblicamente attendibile con autorizzazione DNS, utilizzando Gestore certificati. Per creare un certificato a livello di regione gestito da Google, devi utilizzare l'autorizzazione DNS per progetto.

  • Esegui il deployment del certificato su 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Per eseguire il deployment del certificato, è richiesta la versione 465.0.0 o successiva di Google Cloud CLI. Per controllare la versione dell'interfaccia a riga di comando gcloud, esegui questo comando:

    gcloud --version
    
  3. Per aggiornare gcloud CLI, esegui questo comando.

    gcloud components update
    
  4. Assicurati di disporre dei ruoli seguenti per completare le attività di questo tutorial:

    • Proprietario Certificate Manager: obbligatorio per creare 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: richiesto se vuoi utilizzare Cloud DNS come soluzione DNS.

    Per ulteriori informazioni, consulta le seguenti risorse:

Crea un certificato gestito da Google a livello di regione

Completa i passaggi in questa sezione per creare un'autorizzazione DNS e un certificato gestito da Google che faccia riferimento a tale autorizzazione DNS.

Crea un'autorizzazione DNS

Crea l'autorizzazione DNS come descritto in questa sezione. Se crei un'autorizzazione DNS per un certificato con caratteri jolly, come *.myorg.example.com, configura l'autorizzazione DNS per il dominio principale, ad esempio myorg.example.com.

gcloud

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type=PER_PROJECT_RECORD \
    --location="LOCATION" \
gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME \
    --location="LOCATION"

Sostituisci quanto segue:

  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • DOMAIN_NAME: il nome del dominio per cui stai creando questa autorizzazione DNS. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.
  • LOCATION: la località in cui crei l'autorizzazione DNS.

Il comando restituisce un output come mostrato nell'esempio seguente. Utilizza il record CNAME dell'output per aggiungerlo alla configurazione DNS.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.us-central1.authorize.certificatemanager.goog.
name: _acme-challenge_ujmmovf2vn55tgye.myorg.example.com.
type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/us-central1/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Aggiungi il record CNAME alla configurazione DNS

Se utilizzi Google Cloud per gestire il tuo DNS, completa i passaggi in questa sezione. In caso contrario, consulta la documentazione della soluzione DNS di terze parti.

Prima di completare i passaggi in questa sezione, assicurati di aver creato una zona DNS pubblica.

Quando crei un'autorizzazione DNS, il comando gcloud CLI restituisce il record CNAME corrispondente. Devi aggiungere questo record CNAME alla configurazione DNS nella zona DNS del dominio di destinazione, come segue:

gcloud

  1. Avvia la transazione del record DNS:

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    Sostituisci DNS_ZONE_NAME con il nome della zona DNS di destinazione.

  2. Aggiungi il record CNAME alla zona DNS di destinazione:

    gcloud dns record-sets transaction add CNAME_RECORD_DATA \
      --name= "CNAME_RECORD_NAME" \
      --ttl="30" \
      --type="CNAME" \
      --zone="DNS_ZONE_NAME"
    

    Sostituisci quanto segue:

    • CNAME_RECORD_DATA: il valore completo dei dati del record CNAME restituito dal comando gcloud CLI che ha creato l'autorizzazione DNS corrispondente.
    • CNAME_RECORD_NAME: il valore del nome completo del record CNAME restituito dal comando gcloud CLI che ha creato l'autorizzazione DNS corrispondente.
    • DNS_ZONE_NAME: il nome della zona DNS di destinazione.

    Vedi l'esempio che segue:

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.us-central1.authorize.certificatemanager.goog. \
      --name="_acme-challenge_ujmmovf2vn55tgye.myorg.example.com" \
      --ttl="30" \
      --type="CNAME" \
      --zone="example-com"
    
  3. Esegui la transazione del record DNS per salvare le modifiche:

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    Sostituisci DNS_ZONE_NAME con il nome della zona DNS di destinazione.

Crea un certificato a livello di regione gestito da Google che fa riferimento all'autorizzazione DNS

Per creare un certificato gestito da Google che fa riferimento all'autorizzazione DNS che hai creato nei passaggi precedenti, segui questi passaggi:

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 ti consente di identificare un certificato specifico in un secondo momento.

  6. In corrispondenza di località, scegli A livello di regione.

  7. Dall'elenco Regione, seleziona una regione.

  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 elenco di domini di destinazione delimitato da virgole. Inoltre, ogni nome di dominio deve essere un nome di dominio completo, come myorg.example.com.

  11. In Authorization type (Tipo di autorizzazione), scegli DNS Authorization (Autorizzazione DNS). Se al nome di dominio è associata un'autorizzazione DNS, verrà selezionato automaticamente. Se al nome di dominio non è associata un'autorizzazione DNS:

    1. Fai clic su Crea autorizzazione DNS mancante per visualizzare la finestra di dialogo Crea autorizzazione DNS.
    2. Nel campo Nome autorizzazione DNS, specifica il nome dell'autorizzazione DNS.
    3. Fai clic su Crea autorizzazione DNS. Verifica che il nome DNS sia associato al nome di dominio.
  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 key e value per l'etichetta.

  13. Fai clic su Crea. Verifica che il nuovo certificato sia presente nell'elenco dei certificati.

gcloud

Esegui questo comando:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains=DOMAIN_NAME \
    --dns-authorizations=AUTHORIZATION_NAME \
    --location=LOCATION

Sostituisci quanto segue:

  • CERTIFICATE_NAME: un nome univoco del certificato.
  • DOMAIN_NAME: il dominio di destinazione del certificato. Il prefisso dell'asterisco (*.) rappresenta un certificato con caratteri jolly. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.
  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS che hai creato per questo certificato.
  • LOCATION: il percorso in cui crei il certificato gestito da Google.

Per creare un certificato gestito da Google con un nome di dominio con caratteri jolly, utilizza il comando seguente. Un certificato per il nome di dominio con caratteri jolly copre tutti i sottodomini di primo livello di un determinato dominio.

gcloud certificate-manager certificates create CERTIFICATE_NAME \
   --domains="*.DOMAIN_NAME,DOMAIN_NAME" \
   --dns-authorizations=AUTHORIZATION_NAME
   --location=LOCATION

Sostituisci quanto segue:

  • CERTIFICATE_NAME: un nome univoco del certificato.
  • DOMAIN_NAME: il dominio di destinazione del certificato. Il prefisso *. indica un certificato con caratteri jolly. Il nome di dominio deve essere un nome di dominio completo, come myorg.example.com.
  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS che hai creato per questo certificato.
  • LOCATION: il percorso in cui crei il certificato gestito da Google.

Verifica che il certificato sia attivo

Utilizza il comando seguente per verificare che il certificato stesso sia attivo prima di eseguirne il deployment nel bilanciatore del carico. Il passaggio dello stato del certificato a ACTIVE può richiedere diverse ore.

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

Sostituisci quanto segue:

  • CERTIFICATE_NAME: un nome univoco del certificato.
  • LOCATION: il percorso in cui hai creato il certificato gestito da Google.

L'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
  dnsAuthorizations:
  -  projects/my-project/locations/us-central1/dnsAuthorizations/myAuth
  domains:
  - myorg.example.com
  state: ACTIVE
name: projects/myProject/locations/us-central1/certificates/myCert
pemCertificate: |
  -----BEGIN CERTIFICATE-----
  [...]
  -----END CERTIFICATE-----
sanDnsnames:
- myorg.example.com
updateTime: '2021-10-20T12:19:55.083385630Z'

Esegui il deployment del certificato su un bilanciatore del carico

Per eseguire il deployment del certificato gestito da Google in un bilanciatore del carico, completa i seguenti passaggi.

Prima di procedere con le attività di questa sezione, assicurati di aver completato le attività elencate nella sezione Creare un certificato a livello di regione gestito da Google.

Per eseguire il deployment di un certificato a livello di regione gestito da Google in un bilanciatore del carico delle applicazioni esterno regionale o un bilanciatore del carico delle applicazioni interno regionale, esegui il deployment del certificato collegandolo direttamente al proxy di destinazione.

Collega il certificato direttamente al proxy di destinazione

Per collegare il certificato direttamente al proxy, esegui questo comando:

gcloud compute target-https-proxies update 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 che hai creato quando hai creato il bilanciatore del carico.
  • REGION: la regione in cui creare il proxy di destinazione HTTPS.
  • CERTIFICATE_NAME: il nome del certificato.

Esegui la pulizia

Per ripristinare le modifiche apportate in questo tutorial, completa questi 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: il percorso in cui hai creato il certificato gestito da Google.
  1. Elimina l'autorizzazione DNS:
    gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME
       --location=LOCATION
    
    Sostituisci quanto segue:
  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • LOCATION: la posizione in cui hai creato l'autorizzazione DNS.

Passaggi successivi