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
In Google Cloud Console, vai alla pagina Istanze Cloud SQL .
Vai alle istanze di Cloud SQL
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Seleziona Connections (connessioni) nel menu di navigazione SQL.
Seleziona la scheda Security (Sicurezza).
In Gestisci i certificati client , fai clic sul nome di un certificato.
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
Elenca i certificati sull'istanza per recuperare l'impronta del
certificato che vuoi recuperare:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra il campo sha1Fingerprint
per il certificato che vuoi recuperare. Non includere virgolette.
Recupera il certificato:
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
project-id : l'ID progetto
instance-id : l'ID istanza
sha1FingerPrint : sha1FingerPrint per il 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
Copia tutti i dati dei certificati contenuti tra virgolette
in un file, ad esempio client-cert.pem
. Non copiare le virgolette.
REST v1beta4
Elenca i certificati sull'istanza per recuperare l'impronta del
certificato che vuoi recuperare:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra il campo sha1Fingerprint
per il certificato che vuoi recuperare. Non includere virgolette.
Recupera il certificato:
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
project-id : l'ID progetto
instance-id : l'ID istanza
sha1FingerPrint : sha1FingerPrint per il 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
Copia tutti i dati dei certificati contenuti tra virgolette
in un file, 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 è necessario riavviarlo.
console
In Google Cloud Console, vai alla pagina Istanze Cloud SQL .
Vai alle istanze di Cloud SQL
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Seleziona Connections (connessioni) nel menu di navigazione SQL.
Seleziona la scheda Security (Sicurezza).
Sotto Gestisci i certificati client , trova il certificato che vuoi eliminare e fai clic su .
Nella finestra di dialogo Elimina certificato client , fai clic su OK .
gcloud
Elimina il certificato client utilizzando il comando
ssl client-certs delete :
gcloud sql ssl client-certs delete CERT_NAME \
--instance=INSTANCE_NAME
gcloud sql instances restart INSTANCE_NAME
REST v1
Elenca i certificati sull'istanza per ottenere l'impronta
del certificato che vuoi eliminare:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra il campo sha1Fingerprint
per il certificato che vuoi
eliminare. Non includere virgolette.
Elimina il certificato:
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
project-id : l'ID progetto
instance-id : l'ID istanza
sha1FingerPrint : sha1FingerPrint per il 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X DELETE \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
Elenca i certificati sull'istanza per ottenere l'impronta
del certificato che vuoi eliminare:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#sslCertsList",
"items": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint ",
"createTime": "2020-02-13T00:10:20.595Z",
"expirationTime": "2030-02-10T00:11:20.595Z"
}
]
}
Registra il campo sha1Fingerprint
per il certificato che vuoi
eliminare. Non includere virgolette.
Elimina il certificato:
Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:
project-id : l'ID progetto
instance-id : l'ID istanza
sha1FingerPrint : sha1FingerPrint per il 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X DELETE \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint "
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Gestisci i certificati server
Ruota i certificati server
Se hai ricevuto una notifica relativa alla scadenza dei certificati o hai avviato una rotazione, devi completare i passaggi seguenti per completare la rotazione:
Scarica le informazioni del nuovo certificato del server.
Aggiorna i tuoi client per utilizzare le informazioni del nuovo certificato del server.
Completa la rotazione, che sposta il certificato attualmente attivo nell'area "precedente" e aggiorna il certificato appena aggiunto in modo che sia il certificato attivo.
Dopo la rotazione del certificato SSL, le connessioni proxy di App Engine e Cloud SQL Auth riceveranno automaticamente un nuovo certificato al momento della connessione.
console
Scarica le informazioni del nuovo certificato server:
In Google Cloud Console, vai alla pagina Istanze Cloud SQL .
Vai alle istanze di Cloud SQL
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Seleziona Connections (connessioni) nel menu di navigazione SQL.
Seleziona la scheda Security (Sicurezza).
Fai clic per espandere Gestisci i certificati .
Seleziona Ruota certificato .
L'opzione di rotazione non sarà selezionabile se non sono presenti certificati
idonei.
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 tuoi client MySQL per utilizzare le nuove informazioni
copiando il file scaricato sulle macchine host del client, sostituendo il
file server-ca.pem
esistente.
Dopo aver aggiornato i clienti, completa la rotazione:
Torna alla scheda Sicurezza .
Fai clic per espandere Gestisci i certificati .
Seleziona Ruota certificato .
Verifica che i tuoi clienti si colleghino correttamente.
Se alcuni client non si connettono utilizzando il certificato appena ruotato, puoi selezionare Rollback certificato (Certificato di rollback) per eseguire il rollback alla configurazione precedente.
gcloud
Crea un certificato server:
gcloud beta sql ssl server-ca-certs create \
--instance=INSTANCE
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
Aggiorna tutti i tuoi client per utilizzare le nuove informazioni
copiando il file scaricato nelle macchine host del client, sostituendo i
file server-ca.pem esistenti.
Dopo aver aggiornato i clienti, completa la rotazione:
gcloud beta sql ssl server-ca-certs rotate \
--instance=INSTANCE_NAME
Verifica che i tuoi clienti si colleghino correttamente.
Se eventuale client non si connette utilizzando il certificato appena ruotato, puoi rollback alla configurazione precedente.
REST v1
Scarica i certificati del tuo server:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Completa la rotazione:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
Scarica i certificati del tuo server:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Completa la rotazione:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Esegui il rollback di un'operazione di rotazione dei certificati
Dopo aver completato la rotazione di un certificato, i client devono utilizzare tutti il nuovo certificato per connettersi all'istanza Cloud SQL. Se i client non sono stati aggiornati correttamente per utilizzare le nuove informazioni dei certificati, non potranno connettersi utilizzando SSL/TLS all'istanza. In questo caso, puoi eseguire il rollback alla configurazione precedente del certificato.
Un'operazione di rollback sposta il certificato attualmente attivo nell'area "upcoming" (sostituendo qualsiasi certificato "upcoming" in corso). Il certificato "previous"
diventa il certificato attualmente attivo, riportando la
configurazione del certificato allo stato in cui si trovava prima di completare
la rotazione.
Nota : il rollback dei certificati è disponibile solo fino alla scadenza di quello precedente.
Per eseguire il rollback alla configurazione del certificato precedente:
console
In Google Cloud Console, vai alla pagina Istanze Cloud SQL .
Vai alle istanze di Cloud SQL
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Seleziona Connections (connessioni) nel menu di navigazione SQL.
Seleziona la scheda Security (Sicurezza).
Fai clic per espandere Gestisci i certificati .
Seleziona Rollback certificate (Certificato 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
Scarica i certificati del tuo server:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Copia il campo sha1Fingerprint
relativo alla 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
.
Esegui il rollback della rotazione:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
REST v1beta4
Scarica i certificati del tuo server:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"certs": [
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2019-11-14T22:43:56.458Z",
"expirationTime": "2029-11-11T22:44:56.458Z"
}
],
"activeVersion": "active-version ",
"kind": "sql#instancesListServerCas"
}
Copia il campo sha1Fingerprint
relativo alla 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
.
Esegui il rollback della rotazione:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Salva il corpo della richiesta in un file denominato request.json
ed esegui il seguente comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Avvia una rotazione
Non è necessario attendere l'email di Cloud SQL per avviare una rotazione.
Puoi avviarne uno in qualsiasi momento. Quando avvii una rotazione, viene creato un nuovo certificato che viene inserito nell'area "futuro". Se un certificato era già presente nell'area "upcoming", viene eliminato; può esserci un solo certificato imminente.
Per avviare una rotazione:
console
In Google Cloud Console, vai alla pagina Istanze Cloud SQL .
Vai alle istanze di Cloud SQL
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Seleziona Connections (connessioni) nel menu di navigazione SQL.
Seleziona la scheda Security (Sicurezza).
Fai clic su Crea nuovo certificato .
Fai clic per espandere Gestisci i certificati .
Seleziona Ruota certificato .
L'opzione di rotazione non sarà selezionabile se non sono presenti certificati
idonei.
Completa la rotazione come descritto in
Rotazione dei certificati server .
gcloud
Avvia la rotazione:
gcloud beta sql ssl server-ca-certs create \
--instance=INSTANCE_NAME
Completa la rotazione come descritto in
Rotazione dei certificati server .
REST v1
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Completa la rotazione come descritto in
Rotazione dei certificati server .
REST v1beta4
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Completa la rotazione come descritto in
Rotazione dei certificati server .
Informazioni su un certificato del server
Puoi ricevere informazioni sul tuo certificato server, ad esempio quando scade o sul livello di crittografia fornito.
console
In Google Cloud Console, vai alla pagina Istanze Cloud SQL .
Vai alle istanze di Cloud SQL
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Seleziona Connections (connessioni) nel menu di navigazione SQL.
Seleziona la scheda Security (Sicurezza).
Nella tabella Gestisci i certificati server è indicata la data di scadenza del certificato del server.
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 vedere i dettagli relativi al certificato server quando descrivi l'istanza:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"serverCaCert":
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value -",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
}
}
REST v1beta4
Puoi vedere i dettagli relativi al certificato server quando descrivi l'istanza:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"serverCaCert":
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value -",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint ",
"instance": "instance-id ",
"createTime": "2020-02-10T17:18:54.935Z",
"expirationTime": "2030-02-07T17:19:54.935Z"
}
}
Reimposta la configurazione SSL/TLS
Puoi reimpostare completamente la configurazione SSL/TLS.
Attenzione: questa azione rimuove la possibilità di connetterti all'istanza mediante SSL/TLS finché non crei nuovi certificati client per sostituire quelli utilizzati in precedenza.
console
In Google Cloud Console, vai alla pagina Istanze Cloud SQL .
Vai alle istanze di Cloud SQL
Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Seleziona Connections (connessioni) nel menu di navigazione SQL.
Scorri verso il basso fino alla sezione Reimposta configurazione SSL .
Fai clic su Reimposta configurazione SSL .
gcloud
Aggiorna il certificato:
gcloud sql instances reset-ssl-config INSTANCE_NAME
gcloud sql instances restart INSTANCE_NAME
Crea nuovi certificati client .
REST v1beta4
Aggiorna il certificato:
Prima di utilizzare uno qualsiasi dei 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:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig"
PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Risposta
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-20T21:30:35.667Z",
"operationType": "UPDATE",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Crea nuovi certificati client .
Passaggi successivi