Gestione dei certificati SSL/TLS

In questa pagina viene descritto come gestire i certificati client e server.

Gestisci i certificati client

Recupera un certificato client

Puoi recuperare la parte della chiave pubblica di un certificato client. Tuttavia, non puoi recuperare la chiave privata. Se hai perso la chiave privata, devi creare un nuovo certificato.

Console

  1. In Google Cloud Console, vai alla pagina Istanze Cloud SQL.

    Vai alle istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul suo nome.
  3. Seleziona Connessioni dal menu di navigazione SQL.
  4. Seleziona la scheda Sicurezza.
  5. In Gestisci i certificati client, fai clic sul nome di un certificato.
  6. Si apre la finestra di dialogo Certificato client SSL, che mostra il certificato client (client-cert.pem) con un link per scaricare il certificato.

gcloud

Recupera la chiave pubblica del certificato client con il comando ssl client-certs describe:

gcloud sql ssl client-certs describe CERT_NAME \
--instance=INSTANCE_NAME \
--format="value(cert)" > client-cert.pem

REST v1

  1. Elenca i certificati sull'istanza per ottenere l'impronta del certificato che vuoi recuperare:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    Registra il campo sha1Fingerprint per il certificato che vuoi recuperare. Non inserire virgolette.

  2. Recupera il certificato:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • sha1FingerPrint: sha1FingerPrint del certificato

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  3. Copia in un file tutti i dati dei certificati contenuti tra virgolette, ad esempio client-cert.pem. Non copiare le virgolette.

REST v1beta4

  1. Elenca i certificati sull'istanza per ottenere l'impronta del certificato che vuoi recuperare:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    Registra il campo sha1Fingerprint per il certificato che vuoi recuperare. Non inserire virgolette.

  2. Recupera il certificato:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • sha1FingerPrint: sha1FingerPrint del certificato

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  3. Copia in un file tutti i dati dei certificati contenuti tra virgolette, ad esempio client-cert.pem. Non copiare le virgolette.

Elimina un certificato client

Quando elimini un certificato client, il server di database viene aggiornato e non deve essere riavviato.

Console

  1. In Google Cloud Console, vai alla pagina Istanze Cloud SQL.

    Vai alle istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul suo nome.
  3. Seleziona Connessioni dal menu di navigazione SQL.
  4. Seleziona la scheda Sicurezza.
  5. In Gestisci i certificati client, trova il certificato che vuoi eliminare e fai clic su Elimina..
  6. Nella finestra di dialogo Elimina certificato client, fai clic su OK.

gcloud

  1. Elimina il certificato client utilizzando il comando ssl client-certs delete:

    gcloud sql ssl client-certs delete CERT_NAME \
    --instance=INSTANCE_NAME
    
  2. gcloud sql instances restart INSTANCE_NAME
    

REST v1

  1. Elenca i certificati sull'istanza per ottenere l'impronta del certificato che vuoi eliminare:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    Registra il campo sha1Fingerprint per il certificato che vuoi eliminare. Non inserire virgolette.

  2. Elimina il certificato:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • sha1FingerPrint: sha1FingerPrint del certificato

    Metodo HTTP e URL:

    DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

  1. Elenca i certificati sull'istanza per ottenere l'impronta del certificato che vuoi eliminare:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    Registra il campo sha1Fingerprint per il certificato che vuoi eliminare. Non inserire virgolette.

  2. Elimina il certificato:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza
    • sha1FingerPrint: sha1FingerPrint del certificato

    Metodo HTTP e URL:

    DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

Gestisci i certificati server

Ruota i certificati server

Se hai ricevuto una notifica relativa alla scadenza dei certificati o hai avviato una rotazione, per completare la rotazione devi completare i seguenti passaggi:

  1. Scarica le informazioni del nuovo certificato del server.
  2. Aggiorna i tuoi client in modo che utilizzino le informazioni del nuovo certificato del server.
  3. Completa la rotazione, che trasferisce il certificato attualmente attivo nello slot "precedente" e aggiorna il certificato appena aggiunto in modo che sia il certificato attivo.

Console

Scarica le informazioni del nuovo certificato del server:

  1. In Google Cloud Console, vai alla pagina Istanze Cloud SQL.

    Vai alle istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul suo nome.
  3. Seleziona Connessioni dal menu di navigazione SQL.
  4. Seleziona la scheda Sicurezza.
  5. Fai clic per espandere Gestisci certificati.
  6. Seleziona Ruota il certificato.

    Se non sono presenti certificati idonei, l'opzione di rotazione non sarà selezionabile.

  7. Fai clic su Scarica i certificati.

Le informazioni del certificato del server, codificate come file PEM, vengono scaricate nel tuo ambiente locale:

  • Aggiorna tutti i client MySQL per utilizzare le nuove informazioni copiando il file scaricato nelle macchine host dei tuoi client, sostituendo il file server-ca.pem esistente.

Dopo aver aggiornato i clienti, completa la rotazione:

  1. Torna alla scheda Sicurezza.
  2. Fai clic per espandere Gestisci certificati.
  3. Seleziona Ruota il certificato.
  4. Verifica che i tuoi clienti siano connessi correttamente.
  5. Se qualche client non si connette utilizzando il certificato appena ruotato, puoi selezionare Rollback certificato a Rollback alla configurazione precedente.

gcloud

  1. Crea un certificato del server:
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE
    
  2. Scarica le informazioni del certificato in un file PEM locale:
    gcloud beta sql ssl server-ca-certs list \
    --format="value(cert)" \
    --instance=INSTANCE_NAME > \
    FILE_PATH/FILE_NAME.pem
    
  3. Aggiorna tutti i client per utilizzare le nuove informazioni copiando il file scaricato nelle macchine host client, sostituendo i file server-ca.pem esistenti.
  4. Dopo aver aggiornato i clienti, completa la rotazione:
    gcloud beta sql ssl server-ca-certs rotate \
    --instance=INSTANCE_NAME
          
  5. Verifica che i tuoi clienti siano connessi correttamente.

    Se qualche client non si connette utilizzando il certificato appena ruotato, puoi eseguire il rollback alla configurazione precedente.

REST v1

  1. Scarica i certificati del server:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Completa la rotazione:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

  1. Scarica i certificati del server:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Completa la rotazione:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

Esegui il rollback di un'operazione di rotazione dei certificati

Dopo aver completato la rotazione di un certificato, tutti i client devono utilizzare il nuovo certificato per connettersi all'istanza Cloud SQL. Se i client non sono stati aggiornati correttamente per utilizzare le nuove informazioni del certificato, non saranno in grado di connettersi all'istanza mediante SSL/TLS. In questo caso, puoi eseguire il rollback alla configurazione precedente del certificato.

Un'operazione di rollback sposta il certificato attualmente attivo nello slot "futuro" (sostituendo qualsiasi certificato corrente "in arrivo"). Il certificato "precedente" diventa il certificato attualmente attivo, riportando la configurazione del certificato allo stato in cui si trovava prima di completare la rotazione.

Per eseguire il rollback alla configurazione del certificato precedente:

Console

  1. In Google Cloud Console, vai alla pagina Istanze Cloud SQL.

    Vai alle istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul suo nome.
  3. Seleziona Connessioni dal menu di navigazione SQL.
  4. Seleziona la scheda Sicurezza.
  5. Fai clic per espandere Gestisci certificati.
  6. Seleziona Certificato di rollback.

    L'opzione di rotazione non è selezionabile se non sono presenti certificati idonei. In caso contrario, l'azione di rollback viene completata dopo alcuni secondi.

gcloud

gcloud beta sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
   

REST v1

  1. Scarica i certificati del server:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/listServerCas

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Copia il campo sha1Fingerprint per la versione a cui vuoi eseguire il rollback.

    Cerca la versione con un valore createTime immediatamente prima della versione con il valore sha1Fingerprint mostrato come activeVersion.

  3. Esegui il rollback della rotazione:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Corpo JSON richiesta:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

  1. Scarica i certificati del server:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/listServerCas

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Copia il campo sha1Fingerprint per la versione a cui vuoi eseguire il rollback.

    Cerca la versione con un valore createTime immediatamente prima della versione con il valore sha1Fingerprint mostrato come activeVersion.

  3. Esegui il rollback della rotazione:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Corpo JSON richiesta:

    {
      "rotateServerCaContext": {"nextVersion": "sha1Fingerprint"}
    }
    

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

Avvia una rotazione

Non è necessario attendere che l'email di Cloud SQL inizi una rotazione. Puoi crearne uno in qualsiasi momento. Quando avvii una rotazione, viene creato un nuovo certificato e inserito nell'area "in arrivo". Se un certificato era già nello slot "futuro", viene eliminato; può esistere un solo certificato imminente.

Per avviare una rotazione:

Console

  1. In Google Cloud Console, vai alla pagina Istanze Cloud SQL.

    Vai alle istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul suo nome.
  3. Seleziona Connessioni dal menu di navigazione SQL.
  4. Seleziona la scheda Sicurezza.
  5. Fai clic su Crea nuovo certificato.
  6. Fai clic per espandere Gestisci certificati.
  7. Seleziona Ruota il certificato.

    Se non sono presenti certificati idonei, l'opzione di rotazione non sarà selezionabile.

  8. Completa la rotazione come descritto in Rotazione dei certificati del server.

gcloud

  1. Avvia la rotazione:
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE_NAME
         
  2. Completa la rotazione come descritto in Rotazione dei certificati del server.

REST v1

  1. Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rotateServerCa

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Completa la rotazione come descritto in Rotazione dei certificati del server.

REST v1beta4

  1. Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rotateServerCa

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Completa la rotazione come descritto in Rotazione dei certificati del server.

Ricevere informazioni sul certificato di un server

Puoi ottenere informazioni sul tuo certificato server, ad esempio quando scade o a quale livello di crittografia offre.

Console

  1. In Google Cloud Console, vai alla pagina Istanze Cloud SQL.

    Vai alle istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul suo nome.
  3. Seleziona Connessioni dal menu di navigazione SQL.
  4. Seleziona la scheda Sicurezza.

    Sotto Gestisci i certificati server, puoi visualizzare la data di scadenza del certificato del server nella tabella.

    Per vedere il tipo di certificato, utilizza il comando gcloud beta sql ssl server-ca-certs list --instance=INSTANCE_NAME.

gcloud

gcloud beta sql ssl server-ca-certs list \
--instance=INSTANCE_NAME

REST v1

Puoi visualizzare i dettagli del certificato del server quando descrivi la tua istanza:

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=serverCaCert

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Puoi visualizzare i dettagli del certificato del server quando descrivi la tua istanza:

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=serverCaCert

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Reimposta la configurazione SSL/TLS

Puoi reimpostare completamente la configurazione SSL/TLS.

Console

  1. In Google Cloud Console, vai alla pagina Istanze Cloud SQL.

    Vai alle istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul suo nome.
  3. Seleziona Connessioni dal menu di navigazione SQL.
  4. Scorri verso il basso fino alla sezione Reimposta configurazione SSL.
  5. Fai clic su Reimposta configurazione SSL.

gcloud

  1. Aggiorna il certificato:

    gcloud sql instances reset-ssl-config INSTANCE_NAME
    
  2. gcloud sql instances restart INSTANCE_NAME
    
  3. Crea nuovi certificati client.

REST v1beta4

  1. Aggiorna il certificato:

    Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

    • project-id: l'ID progetto
    • instance-id: l'ID istanza

    Metodo HTTP e URL:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/resetSslConfig

    Per inviare la richiesta, espandi una delle seguenti opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

  2. Crea nuovi certificati client.

Passaggi successivi