Esegui la migrazione dei certificati del bilanciatore del carico a Certificate Manager


Questo tutorial mostra come eseguire la migrazione dei certificati Cloud Load Balancing a Certificate Manager. Per saperne di più sui certificati Cloud Load Balancing, consulta la Panoramica dei certificati SSL nella documentazione di Cloud Load Balancing.

Per eseguire la migrazione dei certificati Cloud Load Balancing senza tempi di inattività, identifica innanzitutto i certificati di cui vuoi eseguire la migrazione. Quindi, crea lo stesso numero di certificati gestiti da Google dei certificati Cloud Load Balancing. Successivamente, consolida i certificati in un'unica mappa dei certificati e testa la mappa dei certificati in un altro bilanciatore del carico. Se i test hanno esito positivo, collega la mappa dei certificati al bilanciatore del carico di destinazione che ospita i tuoi certificati Cloud Load Balancing.

Per trovare l'elenco dei bilanciatori del carico supportati, consulta la panoramica di Certificate Manager.

Obiettivi

Questo tutorial mostra come completare le seguenti attività:

  • Identifica i certificati del bilanciatore del carico di destinazione di cui eseguire la migrazione.
  • Crea certificati gestiti da Google.
  • Crea una mappa dei certificati e le relative voci.
  • Testa la mappa dei certificati in un altro bilanciatore del carico.
  • Collega la mappa dei certificati al bilanciatore del carico 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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

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

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine, Certificate Manager APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. Ruoli obbligatori

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

    • Certificate Manager Owner (roles/certificatemanager.owner)

      Obbligatorio 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 di destinazione HTTPS.

    • Amministratore DNS (roles/dns.admin)

      Obbligatorio se vuoi utilizzare Cloud DNS come soluzione DNS.

    Per ulteriori informazioni, consulta le seguenti risorse:

Identifica i certificati di cui eseguire la migrazione

Per identificare i certificati che vuoi migrare:

  1. Sul bilanciatore del carico, identifica il nome del proxy di destinazione.

  2. Identifica i certificati di cui vuoi eseguire la migrazione.

    Per trovare i certificati collegati a un proxy di destinazione, esegui questo comando:

    gcloud compute target-https-proxies describe TARGET_PROXY_NAME
    

    Sostituisci TARGET_PROXY_NAME con il nome del proxy di destinazione.

    L'output è simile al seguente:

    creationTimestamp: '2021-10-06T04:05:07.520-07:00'
    fingerprint: c9Txdx6AfcM=
    id: '365692570234384780'
    kind: compute#targetHttpsProxy
    name: my-proxy
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/targetHttpsProxies/my-proxy
    sslCertificates:
    - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-first-certificate
    - https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-second-certificate
    urlMap: https://www.googleapis.com/compute/v1/projects/my-project/global/urlMaps/my-map
    

    Prendi nota dei nomi dei certificati elencati nel campo sslCertificates. Per ulteriori informazioni, vedi Panoramica dei proxy di destinazione.

  3. Visualizza i dettagli di ogni certificato:

    gcloud compute ssl-certificates --project=PROJECT_ID describe LB_CERTIFICATE_NAME
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del Google Cloud progetto.
    • LB_CERTIFICATE_NAME: il nome del certificato del bilanciatore del carico.

    L'output è simile al seguente:

       certificate: |
         -----BEGIN CERTIFICATE-----
         MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBX
         MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE
         CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYx
         OTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT
         GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIx
         MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63
         ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwS
         iV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351k
         KSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZ
         DrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zk
         j5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5
         cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esW
         CruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499
         iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35Ei
         Eua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbap
         sZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b
         9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAP
         BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAf
         BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIw
         JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUH
         MAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6Al
         oCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAy
         MAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIF
         AwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9
         NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9
         WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw
         9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy
         +qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvi
         d0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8=
         -----END CERTIFICATE-----
       creationTimestamp: '2021-05-06T04:39:21.736-07:00'
       expireTime: '2022-06-07T01:10:34.000-07:00'
       id: '6422259403966690822'
       kind: compute#sslCertificate
       managed:
          domainStatus:
          a.my-domain1.example.com: ACTIVE
          b.my-domain2.example.com: ACTIVE
          domains:
          - a.my-domain1.example.com
          - b.my-domain2.example.com
          status: ACTIVE
       name: my-certificate
       selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/sslCertificates/my-certificate
       subjectAlternativeNames:
       - a. my-domain1.example.com
       - b. my-domain2.example.com
       type: MANAGED
    

Crea certificati gestiti da Google

Crea lo stesso numero di certificati gestiti da Google dei certificati del bilanciatore del carico. Per un bilanciatore del carico globale o classico, crea certificati globali; per un bilanciatore del carico regionale, crea certificati regionali; e per un bilanciatore del carico tra regioni, crea certificati tra regioni. Prima di creare i certificati, crea un'autorizzazione DNS e aggiungi il record CNAME alla zona DNS autorevole per il tuo dominio.

Puoi scegliere di creare certificati gestiti da Google con autorizzazione DNS (opzione consigliata) o certificati autogestiti.

Questa sezione elenca i passaggi e i comandi per creare certificati globali gestiti da Google. Per creare un certificato gestito da Google regionale o multiregionale, consulta Crea un certificato gestito da Google.

Crea un'autorizzazione DNS

Un'autorizzazione DNS copre solo un singolo nome di dominio. Devi creare un'autorizzazione DNS separata per ogni nome di dominio che vuoi utilizzare con il certificato di destinazione.

Se stai creando un'autorizzazione DNS per un certificato con caratteri jolly, ad esempio *.myorg.example.com, configura l'autorizzazione DNS per il dominio principale, ad esempio myorg.example.com.

Console

Puoi creare un'autorizzazione DNS o allegarne una esistente quando crei un certificato. Per maggiori informazioni, vedi Creare un certificato gestito da Google che fa riferimento all'autorizzazione DNS.

gcloud

Per creare un'autorizzazione DNS, utilizza il comando certificate-manager dns-authorizations create:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME"

Sostituisci quanto segue:

  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • DOMAIN_NAME: il nome del dominio di destinazione per cui stai creando questa autorizzazione DNS. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.

I certificati globali gestiti da Google utilizzano FIXED_RECORD come tipo di autorizzazione DNS predefinito. Per utilizzare l'autorizzazione DNS PER_PROJECT_RECORD, esegui il comando seguente:

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

Dopo aver creato l'autorizzazione DNS, verificane la validità con il comando certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME \

L'output è simile al seguente. Nell'output, trova la riga dnsResourceRecord e recupera il record CNAME (data,name e type) da aggiungere alla configurazione DNS.

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

Terraform

Per creare un'autorizzazione DNS, puoi utilizzare una risorsa google_certificate_manager_dns_authorization.

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
  description = "The default dns auth"
  domain      = local.domain
  labels = {
    "terraform" : true
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

API

Per creare un'autorizzazione DNS, invia una richiesta POST al metodo dnsAuthorizations.create:

POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del Google Cloud progetto.
  • AUTHORIZATION_NAME: il nome dell'autorizzazione DNS.
  • DOMAIN_NAME: il nome del dominio di destinazione per cui stai creando questa autorizzazione DNS. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com.

Crea un certificato gestito da Google che faccia riferimento all'autorizzazione DNS

Per creare un certificato globale gestito da Google che faccia riferimento all'autorizzazione DNS creata nei passaggi precedenti:

Console

  1. Nella console Google Cloud , vai alla pagina Certificate Manager.

    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. Per Tipo di certificato, seleziona Crea certificato gestito da Google.

  8. In Tipo di autorità di certificazione, seleziona Pubblica.

  9. Nel campo Nomi di dominio, specifica un elenco di nomi di dominio del certificato separati da virgole. Ogni nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com. Il nome di dominio può anche essere un nome di dominio con caratteri jolly, ad esempio *.example.com.

  10. In Tipo di autorizzazione, seleziona Autorizzazione DNS.

    La pagina elenca le autorizzazioni DNS dei nomi di dominio. Se un nome di dominio non ha un'autorizzazione DNS associata, segui questi passaggi per crearne una:

    1. Fai clic su Crea autorizzazione DNS mancante.
    2. Nel campo Nome autorizzazione DNS, specifica il nome dell'autorizzazione DNS. Il tipo di autorizzazione DNS predefinito è FIXED_RECORD. Per gestire i certificati in modo indipendente in più progetti, seleziona la casella di controllo Autorizzazione per progetto.
    3. Fai clic su Crea autorizzazione DNS.
  11. 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.

  12. Fai clic su Crea.

    Il nuovo certificato viene visualizzato nell'elenco dei certificati.

gcloud

Per creare un certificato gestito da Google globale con autorizzazione DNS, esegui il comando certificate-manager certificates create con il flag dns-authorizations:

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

Sostituisci quanto segue:

  • CERTIFICATE_NAME: il nome del certificato.
  • DOMAIN_NAME: il nome del dominio di destinazione. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com, o un dominio con caratteri jolly, ad esempio *.myorg.example.com. Il prefisso con asterisco (*.) indica un certificato jolly.
  • AUTHORIZATION_NAMES: un elenco separato da virgole dei nomi delle autorizzazioni DNS che hai creato per il certificato.

Terraform

Utilizza una risorsa google_certificate_manager_certificate.

resource "google_certificate_manager_certificate" "root_cert" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "The wildcard cert"
  managed {
    domains = [local.domain, "*.${local.domain}"]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id
    ]
  }
  labels = {
    "terraform" : true
  }
}

API

Crea il certificato inviando una richiesta POST al metodo certificates.create nel seguente modo:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "dnsAuthorizations": [
   "projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME",
  ],
 }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del Google Cloud progetto.
  • CERTIFICATE_NAME: il nome del certificato.
  • DOMAIN_NAME: il nome del dominio di destinazione. Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com, o un dominio con caratteri jolly, ad esempio *.myorg.example.com. Il prefisso asterisco punto (*.) indica un certificato jolly.
  • AUTHORIZATION_NAMES: un elenco delimitato da virgole dei nomi delle autorizzazioni DNS.

Aggiungere il record CNAME alla configurazione DNS

Se utilizzi una soluzione DNS di terze parti per gestire il DNS, consulta la relativa documentazione per aggiungere il record CNAME alla configurazione DNS. Se utilizzi Google Cloud per gestire il DNS, completa i passaggi descritti in questa sezione.

Console

Per creare un insieme di record:

  1. Nella console Google Cloud , vai alla pagina Zone DNS.

    Vai alle zone Cloud DNS

  2. Fai clic sul nome della zona DNS in cui vuoi aggiungere il record.

  3. Nella pagina Dettagli zona, fai clic su Aggiungi standard.

  4. Nella pagina Crea set di record, inserisci il sottodominio della zona DNS nel campo Nome DNS.

    Quando inserisci il nome del sottodominio, assicurati che il nome del sottodominio, incluso il testo disattivato visualizzato nel campo Nome DNS, corrisponda al valore completo del campo dnsResourceRecord.name visualizzato nell'output del comando gcloud certificate-manager dns-authorizations describe.

    Vedi i seguenti esempi:

    • Se il valore del campo dnsResourceRecord.name è _acme-challenge.myorg.example.com. e il testo in grigio nel campo Nome DNS è .example.com., inserisci _acme-challenge.myorg.

    • Se il valore del campo dnsResourceRecord.name è _acme-challenge.myorg.example.com. e il testo in grigio nel campo Nome DNS è .myorg.example.com., inserisci _acme-challenge.

    • Se il valore del campo dnsResourceRecord.name è _acme-challenge_ujmmovf2vn55tgye.myorg.example.com. e il testo disattivato nel campo Nome DNS è .myorg.example.com., inserisci _acme-challenge_ujmmovf2vn55tgye.

  5. Nel campo Tipo di record risorsa, seleziona CNAME.

  6. Nel campo TTL, inserisci un valore numerico positivo per la durata del record della risorsa, ovvero per quanto tempo può essere memorizzato nella cache.

  7. Nell'elenco Unità TTL, seleziona l'unità di tempo, ad esempio 30 minutes.

  8. Nel campo Nome canonico, inserisci il valore completo del campo dnsResourceRecord.data visualizzato nell'output del comando gcloud certificate-manager dns-authorizations describe.

  9. Per inserire ulteriori informazioni, fai clic su Aggiungi elemento.

  10. Fai clic su Crea.

gcloud

Quando crei un'autorizzazione DNS, il comando gcloud CLI restituisce il record CNAME corrispondente. Per aggiungere il record CNAME alla configurazione DNS nella zona DNS del dominio di destinazione, segui questi passaggi:

  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 \
        --name="VALIDATION_SUBDOMAIN_NAME.DOMAIN_NAME." \
        --ttl="30" \
        --type="CNAME" \
        --zone="DNS_ZONE_NAME"
    

    Sostituisci quanto segue:

    • CNAME_RECORD: il valore completo dei dati del record CNAME restituito dal comando Google Cloud CLI che ha creato l'autorizzazione DNS corrispondente.
    • VALIDATION_SUBDOMAIN_NAME: il sottodominio del prefisso della zona DNS, ad esempio _acme-challenge. Puoi copiare il nome dal log dei comandi gcloud certificate-manager dns-authorizations describe come descritto in Creare un'autorizzazione DNS.
    • DOMAIN_NAME: il nome del dominio di destinazione.Il nome di dominio deve essere un nome di dominio completo, ad esempio myorg.example.com. Devi includere anche il punto finale dopo il nome di dominio di destinazione.
    • DNS_ZONE_NAME: il nome della zona DNS di destinazione.

    Vedi il seguente esempio:

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-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.

Terraform

Per aggiungere il record CNAME alla configurazione DNS, puoi utilizzare una risorsa google_dns_record_set.

resource "google_dns_record_set" "cname" {
  name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
  managed_zone = google_dns_managed_zone.default.name
  type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
  ttl          = 300
  rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
}

Verificare lo stato del certificato

Prima di eseguire il deployment di un certificato in un bilanciatore del carico, verifica che sia attivo. Potrebbero essere necessari diversi minuti prima che lo stato del certificato diventi ACTIVE.

Console

  1. Nella console Google Cloud , vai alla pagina Certificate Manager.

    Vai a Gestore certificati

  2. Nella scheda Certificati, controlla la colonna Stato del certificato.

gcloud

Per verificare lo stato del certificato, esegui questo comando:

gcloud certificate-manager certificates describe CERTIFICATE_NAME

Sostituisci CERTIFICATE_NAME con il nome del certificato gestito da Google di destinazione.

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

Se lo stato del certificato non è ACTIVE dopo diverse ore, verifica di aver aggiunto correttamente il record CNAME alla configurazione DNS.

Per ulteriori passaggi per la risoluzione dei problemi, consulta Risolvere i problemi di Certificate Manager.

Crea la mappatura dei certificati

Per eseguire il deployment di un certificato in un bilanciatore del carico delle applicazioni esterno globale, crea una mappa dei certificati.

gcloud certificate-manager maps create CERTIFICATE_MAP_NAME

Sostituisci quanto segue:

  • CERTIFICATE_MAP_NAME: il nome della mappa dei certificati.

Crea le voci della mappa dei certificati

Per eseguire il deployment di un certificato in un bilanciatore del carico delle applicazioni esterno globale, crea una voce della mappa dei certificati.

Per ogni certificato di cui vuoi eseguire la migrazione, crea voci della mappa dei certificati che fanno riferimento a questi certificati nel seguente modo:

  1. Visualizza i dettagli del certificato.

  2. Nel log, per ogni dominio elencato nel campo subjectAlternativeNames, crea una voce della mappa dei certificati che copra il dominio. Se più di un certificato copre un singolo dominio, devi creare una sola voce della mappa dei certificati e utilizzare un certificato valido che copra quel dominio.

    gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
        --map="CERTIFICATE_MAP_NAME" \
        --certificates="CERTIFICATE_NAMES" \
        --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 è collegata la voce della mappa di certificati.
    • CERTIFICATE_NAMES: un elenco separato da virgole dei nomi dei certificati che vuoi associare a questa voce della mappa dei certificati.
    • HOSTNAME: il nome host che vuoi associare alla voce della mappa dei certificati.
  3. (Facoltativo) Crea una voce della mappa dei certificati principale che faccia riferimento al certificato corrispondente al primo certificato dell'elenco dei certificati originariamente allegati al proxy.

    gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
       --map="CERTIFICATE_MAP_NAME" \
       --certificates="CERTIFICATE_NAMES" \
       --set-primary
    

    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 è collegata la voce della mappa di certificati.
    • CERTIFICATE_NAMES: un elenco separato da virgole dei nomi dei certificati che vuoi associare a questa voce della mappa dei certificati.
  4. Per verificare lo stato attivo di ogni voce della mappa dei certificati che hai creato, esegui questo comando:

     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 dei certificati.
    • CERTIFICATE_MAP_NAME: il nome della mappa di certificati a cui è collegata la voce della mappa di certificati.

    L'output è simile al seguente:

       certificates:
       - projects/my-project/locations/global/certificates/my-certificate
       createTime: '2021-09-06T10:01:56.229472109Z'
       hostname: example.com
       name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/my-map-entry
       state: ACTIVE
       updateTime: '2021-09-06T10:01:58.277031787Z'
    

(Facoltativo) Testa la configurazione su un nuovo bilanciatore del carico

Per ridurre al minimo i tempi di inattività, ti consigliamo di testare le mappature dei certificati appena configurate su un nuovo bilanciatore del carico che non gestisce il traffico di produzione. In questo modo, puoi rilevare e risolvere eventuali errori prima di procedere con la migrazione nel tuo ambiente di produzione.

Testa la configurazione nel seguente modo:

  1. Crea un bilanciatore del carico globale con un nuovo proxy di destinazione. Per creare un bilanciatore del carico, consulta le seguenti pagine:

  2. Collega la mappa dei certificati al nuovo proxy di destinazione del bilanciatore del carico.

    gcloud compute target-https-proxies create TEST_PROXY_NAME \
        --certificate-map="CERTIFICATE_MAP_NAME" \
        --global
    

    Sostituisci quanto segue:

    • TEST_PROXY_NAME: il nome del proxy di destinazione del test.
    • CERTIFICATE_MAP_NAME: il nome della mappa di certificati che fa riferimento alla voce della mappa di certificati e al certificato associato.
  3. Per ogni dominio di destinazione incluso nella migrazione, verifica la connettività al dominio sull'indirizzo IP del nuovo bilanciatore del carico:

    openssl s_client -showcerts -servername DOMAIN_NAME -connect IP_ADDRESS:443
    

    Sostituisci quanto segue:

    • DOMAIN_NAME: il nome del dominio di destinazione.
    • IP_ADDRESS: l'indirizzo IP del nuovo bilanciatore del carico.

    Per saperne di più sul test di connettività, consulta Test con OpenSSL.

Ripulisci l'ambiente di test

Esegui la pulizia dell'ambiente di test creato nei passaggi precedenti.

Elimina il bilanciatore del carico di test come descritto in Eliminazione del bilanciatore del carico.

Non eliminare i certificati, la mappa dei certificati o le voci della mappa dei certificati che hai creato nei passaggi precedenti.

Applica la nuova mappa dei certificati al bilanciatore del carico di destinazione

Dopo aver testato la nuova configurazione del certificato e aver confermato che è valida, applica la nuova mappa dei certificati al bilanciatore del carico di destinazione (il bilanciatore del carico che ospita i certificati) seguendo questi passaggi.

  1. Se utilizzi un bilanciatore del carico globale, collega la mappa dei certificati al nuovo proxy di destinazione del bilanciatore del carico:

    gcloud compute target-https-proxies update TARGET_PROXY_NAME \
        --certificate-map="CERTIFICATE_MAP_NAME" \
        --global
    

    Sostituisci quanto segue:

    • TARGET_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.
  2. Attendi che la modifica alla configurazione sia stata applicata e che il bilanciatore del carico abbia iniziato a pubblicare il nuovo certificato. Di solito occorrono pochi minuti, ma possono essere necessari fino a 30 minuti.

È stata eseguita la migrazione dei tuoi certificati. Se noti problemi con il traffico, scollega la nuova mappa dei certificati dal proxy di destinazione. In questo modo, il bilanciamento del carico torna alla configurazione originale.

Passaggi successivi