Utilizza certificati SSL autogestiti

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

I certificati SSL autogestiti sono certificati che ottieni, esegui il provisioning e il rinnovo. Puoi utilizzare questa risorsa per proteggere la comunicazione tra client e bilanciatore del carico.

I certificati autogestiti possono essere qualsiasi combinazione dei seguenti tipi di certificati:

  • Convalida del dominio (DV)
  • Convalida dell'organizzazione (OV)
  • Convalida estesa (EV)

I certificati autogestiti sono supportati con i seguenti bilanciatori del carico:

  • Certificati globali
    • Bilanciatore del carico HTTP(S) esterno globale
    • Bilanciatore del carico HTTP(S) esterno globale (versione classica)
    • Bilanciatore del carico del proxy SSL esterno
  • Certificati a livello di regione
    • Bilanciatore del carico HTTP(S) esterno a livello di area geografica
    • Bilanciatore del carico HTTP(S) interno

In questa pagina viene descritto il processo per ottenere un certificato valido e poi caricarlo per creare una risorsa del certificato Google Cloud SSL.

Prima di iniziare

Autorizzazioni

Per eseguire le attività in questa guida, devi essere in grado di creare e modificare i certificati SSL nel tuo progetto. Puoi procedere in questo modo se si verifica una delle seguenti condizioni:

  • Sei un Proprietario o Editor del progetto (roles/owner o roles/editor).
  • Nel progetto hai sia il ruolo Amministratore di sicurezza Compute (compute.securityAdmin) sia il ruolo Amministratore rete Compute (compute.networkAdmin).
  • Hai un ruolo personalizzato per il progetto che include le autorizzazioni compute.sslCertificates.* e una o entrambe le opzioni compute.targetHttpsProxies.* e compute.targetSslProxies.*, a seconda del tipo di bilanciatore del carico che stai utilizzando.

Passaggio 1: crea una chiave privata e un certificato

Se hai già una chiave privata e un certificato di un'autorità di certificazione (CA), ignora questa sezione e vai a Creazione di una risorsa del certificato SSL.

Seleziona o crea una chiave privata

Un certificato SSL Google Cloud include sia una chiave privata che il certificato stesso, entrambi in formato PEM. La chiave privata deve soddisfare i seguenti criteri:

  • Deve essere in formato PEM.
  • Non può essere protetto da una passphrase. Google Cloud archivia la chiave privata nel suo formato criptato.
  • Il suo algoritmo di crittografia deve essere RSA-2048 o ECDSA P-256.

Per creare una nuova chiave privata, utilizza uno dei seguenti comandi OpenSSL.

  • Crea una chiave privata RSA-2048:

    openssl genrsa -out PRIVATE_KEY_FILE 2048
    
  • Crea una chiave privata ECDSA P-256:

    openssl ecparam -name prime256v1 -genkey -noout -out PRIVATE_KEY_FILE
    

Sostituisci PRIVATE_KEY_FILE con il percorso e il nome file per il nuovo file della chiave privata.

Creare una richiesta di firma del certificato (CSR)

Dopo aver creato una chiave privata, puoi generare una richiesta di firma del certificato (CSR) nel formato PEM utilizzando OpenSSL. Il tuo CSR deve soddisfare i seguenti criteri:

  • Deve essere in formato PEM.
  • Deve avere un attributo nome comune (CN) o nome alternativo del soggetto (SAN). In pratica, il certificato dovrebbe contenere entrambi gli attributi CN e SAN, anche se interessano un unico dominio, i client moderni, come le versioni attuali di macOS e iOS, non si basano solo sull'attributo CN.

Per creare una CSR, segui questi passaggi:

  1. Crea un file di configurazione OpenSSL. Nell'esempio seguente, i nomi alternativi degli oggetti sono definiti nella [sans_list].

    cat <<'EOF' >CONFIG_FILE
    [req]
    default_bits              = 2048
    req_extensions            = extension_requirements
    distinguished_name        = dn_requirements
    
    [extension_requirements]
    basicConstraints          = CA:FALSE
    keyUsage                  = nonRepudiation, digitalSignature, keyEncipherment
    subjectAltName            = @sans_list
    
    [dn_requirements]
    countryName               = Country Name (2 letter code)
    stateOrProvinceName       = State or Province Name (full name)
    localityName              = Locality Name (eg, city)
    0.organizationName        = Organization Name (eg, company)
    organizationalUnitName    = Organizational Unit Name (eg, section)
    commonName                = Common Name (e.g. server FQDN or YOUR name)
    emailAddress              = Email Address
    
    [sans_list]
    DNS.1                     = SUBJECT_ALTERNATIVE_NAME_1
    DNS.2                     = SUBJECT_ALTERNATIVE_NAME_2
    
    EOF
    
  2. Esegui questo comando OpenSSL per creare un file di richiesta di firma di certificato (CSR). Il comando è interattivo; vengono richiesti gli attributi tranne per i nomi alternativi degli oggetti, che hai definito nel [sans_list] di CONFIG_FILE nel passaggio precedente.

    openssl req -new -key PRIVATE_KEY_FILE \
        -out CSR_FILE \
        -config CONFIG_FILE
    

Per entrambi i passaggi, sostituisci i segnaposto con valori validi:

  • CONFIG_FILE: percorso, incluso il nome del file di configurazione OpenSSL. Puoi eliminare il file dopo aver completato la procedura.
  • SUBJECT_ALTERNATIVE_NAME_1 e SUBJECT_ALTERNATIVE_NAME_2: nomi alternativi del soggetto per il tuo certificato. Se il certificato riguarda un solo nome host, devi definire un solo nome alternativo dell'oggetto che corrisponda al nome comune. Se hai bisogno di più di due nomi alternativi degli oggetti, aggiungili al file di configurazione, incrementando il numero dopo DNS (DNS.3, DNS.4 e così via).
  • PRIVATE_KEY_FILE: percorso del file della chiave privata
  • CSR_FILE: percorso, incluso il nome del file, per il CSR

Firma la richiesta di firma del certificato

Quando un'autorità di certificazione (CA) firma il tuo CSR, utilizza la sua chiave privata per creare un certificato. Utilizza uno dei seguenti metodi per firmare la richiesta di firma del certificato:

Utilizza un'autorità di certificazione attendibile pubblicamente

Se richiedi a una CA attendibile pubblicamente di firmare il tuo CSR, il certificato risultante è considerato attendibile da tutti i client che si fidano di tale CA pubblica. Per produrre un certificato firmato, la CA pubblica richiede solo la tua CSR.

Utilizza la tua CA interna

Se gestisci la tua CA, puoi utilizzarla per firmare il tuo CSR. L'utilizzo della tua CA per firmare il tuo CSR crea un certificato Internamente attendibile quando anche i tuoi clienti sono stati configurati per considerare attendibile la tua CA.

Utilizza un certificato autofirmato

Se utilizzi la stessa chiave privata che hai usato per creare la richiesta di firma del certificato, crea un certificato autofirmato. I certificati autofirmati non sono considerati attendibili da nessun client, a meno che il client non sia configurato per saltare la convalida del certificato. Ad esempio, nel client di un browser web viene visualizzato un messaggio che ti chiede se vuoi considerare attendibile un certificato autofirmato. Utilizza solo certificati autofirmati per i test.

Se gestisci la tua CA o se vuoi creare un certificato autofirmato per il test, puoi utilizzare il seguente comando OpenSSL:

openssl x509 -req \
    -signkey PRIVATE_KEY_FILE \
    -in CSR_FILE \
    -out CERTIFICATE_FILE \
    -extfile CONFIG_FILE \
    -extensions extension_requirements \
    -days TERM

Sostituisci i segnaposto con valori validi:

  • PRIVATE_KEY_FILE: il percorso della chiave privata per la tua CA. Se crei un certificato autofirmato per il test, questa chiave privata corrisponde a quella utilizzata per creare la CSR.
  • CSR_FILE: il percorso verso la CSR
  • CERTIFICATE_FILE: il percorso del file del certificato da creare
  • TERM: numero di giorni, a partire da ora, durante i quali il certificato deve essere considerato valido dai clienti che lo verificano

Caratteri jolly in nomi comuni

I certificati SSL autogestiti possono utilizzare un carattere jolly nel nome comune. Ad esempio, un certificato con il nome comune *.example.com. corrisponde ai nomi host www.example.com e foo.example.com, ma non ai nomi a.b.example.com o example.com. Quando il bilanciatore del carico seleziona un certificato, preferisce sempre abbinare un nome host ai certificati senza caratteri jolly rispetto ai certificati con caratteri jolly.

I certificati con frammenti di caratteri jolly, come f*.example.com, non sono supportati.

Passaggio 2: crea una risorsa del certificato SSL autogestita

Prima di poter creare una risorsa del certificato SSL Google Cloud, devi disporre di una chiave privata e di un certificato. Consulta Creazione di una chiave privata e di un certificato se non li hai già creati o ottenuti.

Console

Puoi utilizzare i certificati SSL globali nella scheda Certificati all'interno di Google Cloud Console. Non è possibile creare certificati SSL a livello di area geografica in Google Cloud Console. Utilizza gcloud o l'API REST.

  1. Vai alla scheda Certificati nella console Google Cloud.
    Vai alla scheda Certificati
  2. Fai clic su Crea certificato SSL.
  3. Inserisci un nome e una descrizione facoltativa per il certificato.
  4. Seleziona Carica il certificato.
  5. Incolla il tuo certificato o fai clic su Carica per passare al file del certificato.
    Puoi scegliere di includere la catena di certificati CA nello stesso file del certificato. Google Cloud non convalida la catena di certificati per tuo conto. La convalida è una tua responsabilità.
  6. Incolla la tua chiave privata o fai clic su Carica per passare al file della chiave privata.
  7. Fai clic su Crea.

gcloud

Per creare un certificato SSL globale, utilizza il comando gcloud compute ssl-certificates create con il flag --global:

gcloud compute ssl-certificates create CERTIFICATE_NAME \
    --certificate=CERTIFICATE_FILE \
    --private-key=PRIVATE_KEY_FILE \
    --global

Per creare un certificato SSL a livello di regione, utilizza il comando gcloud compute ssl-certificates create con il flag --region:

gcloud compute ssl-certificates create CERTIFICATE_NAME \
    --certificate=CERTIFICATE_FILE \
    --private-key=PRIVATE_KEY_FILE \
    --region=REGION

Sostituisci i segnaposto con valori validi:

  • CERTIFICATE_NAME: nome della risorsa del certificato globale da creare
  • CERTIFICATE_FILE: il percorso di un file del certificato in formato PEM. Puoi scegliere di includere la catena di certificati CA nello stesso file del certificato. Google Cloud non convalida la catena di certificati per tuo conto; la convalida è una tua responsabilità.
  • PRIVATE_KEY_FILE: percorso a una chiave privata in formato PEM. La chiave privata non può essere protetta da una passphrase.
  • REGION: se applicabile, la regione per il certificato SSL a livello di regione. Se questa risorsa del certificato è per un bilanciatore del carico HTTP(S) interno o un bilanciatore del carico HTTP(S) esterno a livello di regione, la regione deve corrispondere a quella del bilanciatore del carico.

API

Per utilizzare i metodi API, devi prima leggere i file del certificato e della chiave privata perché la richiesta API deve inviare i contenuti dei file.

Leggere i file del certificato e della chiave privata, quindi creare il certificato SSL. I seguenti esempi mostrano come eseguire questa operazione con Python.

Per i certificati SSL globali, utilizza il metodo API sslCertificates.insert:

from pathlib import Path
from pprint import pprint
from typing import Union

from googleapiclient import discovery

def create_certificate(
    project_id: str, certificate_file: Union[str, Path], private_key_file: Union[str, Path], certificate_name: str, description: str = "Certificate created from a code sample."
) -> None:
    """
    Create a global SSL self-signed certificate within your Google Cloud project.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        certificate_file: path to the file with the certificate you want to create in your project.
        private_key_file: path to the private key you used to sign the certificate with.
        certificate_name: name for the certificate once it's created in your project.
        description: description of the certificate.
    """
    service = discovery.build("compute", "v1")

    # Read the cert into memory
    with open(certificate_file) as f:
        _temp_cert = f.read()

    # Read the private_key into memory
    with open(private_key_file) as f:
        _temp_key = f.read()

    # Now that the certificate and private key are in memory, you can create the
    # certificate resource
    ssl_certificate_body = {
        "name": certificate_name,
        "description": description,
        "certificate": _temp_cert,
        "privateKey": _temp_key,
    }
    request = service.sslCertificates().insert(
        project=project_id, body=ssl_certificate_body
    )
    response = request.execute()
    pprint(response)

Per i certificati SSL a livello di regione, utilizza il metodo API regionSslCertificates.insert:

from pprint import pprint
from typing import Union

from googleapiclient import discovery

def create_regional_certificate(
    project_id: str,
    region: str,
    certificate_file: Union[str, Path],
    private_key_file: Union[str, Path],
    certificate_name: str,
    description: str = "Certificate created from a code sample."
) -> None:
    """
    Create a regional SSL self-signed certificate within your Google Cloud project.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region you want to use.
        certificate_file: path to the file with the certificate you want to create in your project.
        private_key_file: path to the private key you used to sign the certificate with.
        certificate_name: name for the certificate once it's created in your project.
        description: description of the certificate.
    """
    service = discovery.build("compute", "v1")

    # Read the cert into memory
    with open(certificate_file) as f:
        _temp_cert = f.read()

    # Read the private_key into memory
    with open(private_key_file) as f:
        _temp_key = f.read()

    # Now that the certificate and private key are in memory, you can create the
    # certificate resource
    ssl_certificate_body = {
        "name": certificate_name,
        "description": description,
        "certificate": _temp_cert,
        "privateKey": _temp_key,
    }
    request = service.regionSslCertificates().insert(
        project=project_id, region=region, body=ssl_certificate_body
    )
    response = request.execute()
    pprint(response)

Per altri esempi di codice, consulta la pagina di riferimento dell'API.

Passaggio 3: associa un certificato SSL a un proxy di destinazione

Devi associare almeno un certificato SSL a ogni proxy HTTPS o SSL di destinazione. Puoi configurare il proxy di destinazione con un massimo di il numero massimo di certificati SSL per HTTPS o di un proxy SSL di destinazione. Puoi fare riferimento a più certificati autogestiti sullo stesso proxy di destinazione.

Console

Quando utilizzi la console Google Cloud per modificare un bilanciatore del carico esistente, associ automaticamente il certificato SSL al proxy di destinazione appropriato.

gcloud

Per associare un certificato SSL globale a un proxy HTTPS di destinazione, utilizza il comando gcloud compute target-https-proxies update con i flag --global e --global-ssl-certificates:

gcloud compute target-https-proxies update TARGET_PROXY_NAME \
    --global \
    --ssl-certificates=CERTIFICATE_LIST \
    --global-ssl-certificates

Per associare un certificato SSL globale a un proxy SSL di destinazione, utilizza il comando gcloud compute target-ssl-proxies update:

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --ssl-certificates=CERTIFICATE_LIST

Per associare un certificato SSL a livello di regione a un proxy HTTPS di destinazione, utilizza il comando gcloud compute target-https-proxies update con i flag --region e --ssl-certificates-region:

gcloud compute target-https-proxies update TARGET_PROXY_NAME \
    --region=REGION \
    --ssl-certificates=CERTIFICATE_LIST \
    --ssl-certificates-region=REGION

Sostituisci i segnaposto con valori validi:

  • TARGET_PROXY_NAME: nome del proxy di destinazione del bilanciatore del carico
  • CERTIFICATE_LIST: un elenco di nomi di certificati Google Cloud SSL delimitati da virgole
  • REGION: se applicabile, la regione per il proxy di destinazione a livello di regione e il certificato SSL a livello di regione.

API

Per associare un certificato SSL globale a un proxy HTTPS di destinazione per un bilanciatore del carico HTTP(S) esterno, invia una richiesta POST al metodo targetHttpsProxies.insert, sostituendo PROJECT_ID con il tuo ID progetto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxy

{
"name": "l7-xlb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-xlb-map",
"sslCertificates": /projectsPROJECT_IDglobal/sslCertificates/SSL_CERT_NAME
}

Per associare un certificato SSL globale a un proxy HTTPS di destinazione per un bilanciatore del carico del proxy SSL esterno, invia una richiesta POST al metodo targetSslProxies.insert, sostituendo PROJECT_ID con il tuo ID progetto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxy

{
"name": "l7-ssl-proxy",
"sslCertificates": /projectsPROJECT_IDglobal/sslCertificates/SSL_CERT_NAME
}

Per associare un certificato SSL a un'area geografica a un proxy HTTPS di destinazione per un bilanciatore del carico HTTP(S) esterno, invia una richiesta POST al metodo targetHttpsProxies.insert, sostituendo PROJECT_ID con l'ID progetto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetHttpsProxy

{
"name": "l7-xlb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-map",
"region": "us-west1"
"sslCertificates": /projectsPROJECT_IDregions/us-west1/sslCertificates/SSL_CERT_NAME
}

Passaggio 4: aggiorna i record DNS A e AAAA in modo che rimandino all'indirizzo IP del bilanciatore del carico

Nel sito del tuo registrar, nell'host DNS o nell'ISP (ovvero ovunque siano gestiti i tuoi record DNS), aggiungi o aggiorna i record DNS A (per IPv4) e i record AAAA DNS (per IPv6) per i domini e i sottodomini in modo che rimandino all'indirizzo IP associato alla regola di forwarding del bilanciatore del carico.

Se utilizzi Cloud DNS e Google Domains, configura i tuoi domini e aggiorna i tuoi server dei nomi.

Se utilizzi più domini per un singolo certificato, devi aggiungere o aggiornare i record DNS per tutti i domini e i sottodomini in modo che rimandino tutti all'indirizzo IP del bilanciatore del carico.

Dopo aver atteso il completamento del completamento DNS, puoi verificare la configurazione eseguendo il comando dig. Ad esempio, supponiamo che il tuo dominio sia www.example.com. Esegui questo comando dig:

dig www.example.com
; <<>> DiG 9.10.6 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:
;; flags: ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL:

;; PSEUDOSECTION:
; EDNS: version: 0, flags:; udp:
;; SECTION:
;www.example.com.

;; SECTION:
www.example.com.   www.example.com.edgekey.net.
www.example.com.edgekey.net.   www.example.com.edgekey.net.globalredir.akadns.net.
www.example.com.edgekey.net.globalredir.akadns.net.   e6858.dsce9.akamaiedge.net.
e6858.dsce9.akamaiedge.net.   203.0.113.5

;; time:
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 16:54:44
;;  rcvd: 31748 qr rd 1 OPT 512 QUESTION IN A ANSWER 1742 IN CNAME 21330 IN CNAME 3356 IN CNAME 19 IN A Query 43 msec Wed Jun 03 PDT 2020 MSG SIZE 193>

In questo esempio, 203.0.113.5 è l'indirizzo IP del tuo bilanciatore del carico.

Passaggio 5: prova con OpenSSL

Dopo che gli stati del certificato e del dominio sono attivi, possono essere necessari fino a 30 minuti prima che il bilanciatore del carico inizi a utilizzare il certificato SSL autogestito.

Per eseguire il test, esegui il comando OpenSSL seguente, sostituendo DOMAIN con il nome DNS e IP_ADDRESS con l'indirizzo IP del bilanciatore del carico.

echo | openssl s_client -showcerts -servername DOMAIN -connect IP_ADDRESS:443 -verify 99 -verify_return_error

Questo comando restituisce i certificati che il bilanciatore del carico presenta al client. Oltre ad altre informazioni dettagliate, l'output deve includere la catena di certificati e Verify return code: 0 (ok).

Utilizzare i certificati SSL autogestiti

Le seguenti sezioni descrivono come elencare, visualizzare, eliminare e sostituire le risorse del certificato SSL.

Elenca certificati SSL

Console

Puoi controllare lo stato dei certificati SSL globali nella scheda Certificati nella pagina Bilanciamento del carico. Non è possibile gestire i certificati SSL a livello di regione nella console Google Cloud. Utilizza gcloud o l'API REST.

  1. Vai alla pagina Certificati nella console Google Cloud.
    Vai alla pagina Certificati
  2. (Facoltativo) Filtra l'elenco dei certificati SSL.

gcloud

Per elencare i certificati SSL globali, utilizza il comando gcloud compute ssl-certificates list con il flag --global:

gcloud compute ssl-certificates list \
   --global

Per elencare i certificati SSL a livello di regione, utilizza il comando gcloud compute ssl-certificates list con il filtro region:

gcloud compute ssl-certificates list \
   --filter="region:(REGION ...)"

Sostituisci i segnaposto con valori validi:

  • REGION: un'area geografica di Google Cloud. Includi più aree geografiche sotto forma di elenco separato da spazi.

Descrivere i certificati SSL

Console

Per visualizzare ulteriori dettagli sui certificati SSL globali, consulta la scheda Certificati nella pagina Bilanciamento del carico.

  1. Vai alla pagina Certificati nella console Google Cloud.
    Vai alla pagina Certificati
  2. (Facoltativo) Filtra l'elenco dei certificati SSL.
  3. Per visualizzare ulteriori dettagli, fai clic sul nome del certificato.

gcloud

Per descrivere un certificato SSL globale, utilizza il comando gcloud compute ssl-certificates describe con il flag --global:

gcloud  compute ssl-certificates describe CERTIFICATE_NAME \
   --global

Per descrivere un certificato SSL a livello di regione, utilizza il comando gcloud compute ssl-certificates describe con il flag --region:

gcloud compute ssl-certificates describe CERTIFICATE_NAME \
   --region=REGION

Sostituisci i segnaposto con valori validi:

  • CERTIFICATE_NAME: il nome del certificato SSL
  • REGION: un'area geografica Google Cloud

Elimina certificati SSL

Prima di poter eliminare un certificato SSL, devi aggiornare ogni proxy di destinazione che fa riferimento al certificato. Per ogni proxy di destinazione, esegui il comando gcloud update appropriato per aggiornare il proxy di destinazione CERTIFICATE_LIST in modo che non includa più il certificato SSL che devi eliminare. Tieni presente che ogni proxy SSL di destinazione o proxy HTTPS di destinazione deve fare riferimento ad almeno un certificato SSL.

Dopo aver aggiornato il proxy di destinazione, puoi eliminare il certificato SSL.

Console

Puoi eliminare i certificati SSL globali nella scheda Certificati nella pagina Bilanciamento del carico.

  1. Vai alla pagina Certificati nella console Google Cloud.
    Vai alla pagina Certificati
  2. Seleziona il certificato SSL che vuoi eliminare.
  3. Fai clic su Elimina.
  4. Per confermare, fai di nuovo clic su Elimina.

gcloud

Per eliminare un certificato SSL globale, utilizza il comando gcloud compute ssl-certificates delete con il comando --global:

gcloud compute ssl-certificates delete CERTIFICATE_NAME \
    --global

Per eliminare un certificato SSL a livello di regione, utilizza il comando gcloud compute ssl-certificates delete con il comando --region:

gcloud compute ssl-certificates delete CERTIFICATE_NAME \
    --region=REGION

Sostituisci i segnaposto con valori validi:

  • CERTIFICATE_NAME: il nome del certificato SSL
  • REGION: un'area geografica Google Cloud

Sostituisci o rinnova un certificato SSL prima che scada

Con i certificati SSL autogestiti, devi fornire un certificato attivo e funzionante. Se hai un solo certificato SSL, non rimuoverlo finché il nuovo non funziona. Per continuare a gestire il traffico, il proxy di destinazione deve continuare a fare riferimento ad almeno un certificato SSL attivo.

Segui questi passaggi se devi sostituire, rinnovare o ruotare un certificato SSL:

  1. Esegui il comando gcloud compute ssl-certificates describe del certificato corrente per verificare se sta per scadere.
  2. Crea una nuova risorsa del certificato SSL. Il nuovo certificato SSL deve avere un nome univoco all'interno del progetto.
  3. Aggiorna il proxy di destinazione in modo che l'elenco dei certificati SSL includa il nuovo certificato SSL nella prima posizione per impostarlo come certificato principale. Dopo il nuovo certificato, includi gli eventuali certificati SSL esistenti che vuoi conservare. Se hai un solo certificato, non rimuoverlo ora, anche se sta per scadere.

    Per evitare tempi di inattività, esegui un singolo comando gcloud con il flag --ssl-certificates. Ad esempio:

    Per i bilanciatori del carico HTTP(S) esterni globali:

    Utilizza il comando gcloud compute target-https-proxies update con il flag --global.

    gcloud compute target-https-proxies update TARGET_PROXY_NAME \
       --global \
       --ssl-certificates=new-ssl-cert,other-certificates \
       --global-ssl-certificates
    

    Per i bilanciatori del carico HTTP(S) esterni a livello di area geografica e i bilanciatori del carico HTTP(S) interni:

    Utilizza il comando gcloud compute target-https-proxies update con il flag --region.

    gcloud compute target-https-proxies update TARGET_PROXY_NAME \
       --region REGION \
       --ssl-certificates=new-ssl-cert,other-certificates \
       --global-ssl-certificates
    

    Per i bilanciatori del carico del proxy SSL esterni:

    Utilizza il comando gcloud compute target-ssl-proxies update con il flag --backend-service.

    gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
       --ssl-certificates=new-ssl-cert,other-certificates
    
  4. Verifica che il bilanciatore del carico stia pubblicando il certificato sostitutivo eseguendo il comando OpenSSL seguente:

    echo | openssl s_client -showcerts -connect IP_ADDRESS:443 -verify 99 -verify_return_error
    
  5. Attendi 15 minuti per assicurarti che il certificato sostitutivo sia disponibile per tutti i Google Front End (GFE).

  6. Aggiorna il proxy di destinazione per rimuovere il certificato che sta per scadere.

  7. (Facoltativo) Elimina il certificato SSL precedente.

Ruota periodicamente i certificati SSL

Questa soluzione di esempio controlla periodicamente lo stato dei certificati utilizzati con i bilanciatori del carico Google Cloud e ruota i certificati quando raggiungono una determinata percentuale della loro durata. Lo strumento utilizza CA configurate mediante il servizio autorità di certificazione.

Questa soluzione funziona con i seguenti bilanciatori del carico:

  • Bilanciatore del carico HTTP(S) esterno globale
  • Bilanciatore del carico HTTP(S) esterno globale (versione classica)
  • Bilanciatore del carico HTTP(S) esterno a livello di area geografica
  • Bilanciatore del carico HTTP(S) interno
  • bilanciatore del carico del proxy SSL esterno

Passaggi successivi