Cette page explique comment gérer vos certificats clients et vos certificats de serveur.
Gérer les certificats clients
Récupérer un certificat client
Vous pouvez récupérer la partie clé publique d'un certificat client. En revanche, il est impossible de récupérer la clé privée. Si vous la perdez, vous devrez créer un nouveau certificat client.
Console
Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.
Accéder à la page Instances Cloud SQL
Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance .
Cliquez sur le lien Connexions dans le volet de navigation de gauche.
Accédez à la section Configurer les certificats de client SSL .
Cliquez sur le nom du certificat. La boîte de dialogue Certificat client SSL s'ouvre et affiche le certificat client (client-cert.pem
).
gcloud
Récupérez la clé publique d'un certificat client à l'aide de la commande ssl client-certs describe
:
gcloud sql ssl client-certs describe [CERT_NAME] --instance=[INSTANCE_NAME] --format="value(cert)" > client-cert.pem
REST v1beta4
Répertoriez les certificats de l'instance pour obtenir l'empreinte du
certificat que vous souhaitez récupérer :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"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://www.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"
}
]
}
Prenez note du champ sha1Fingerprint
du certificat que vous souhaitez récupérer. N'incluez pas les guillemets.
Récupérez le certificat en procédant comme suit :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance
sha1FingerPrint : sha1FingerPrint du certificat
Méthode HTTP et URL :
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#sslCert",
"certSerialNumber": "cert-serial-number ",
"cert": "cert-value ",
"commonName": "ca-server-name ",
"sha1Fingerprint": "sha1Fingerprint "
"instance": "instance-id ",
"selfLink": "https://www.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"
}
Copiez toutes les données de certificat contenues entre guillemets dans un fichier, par exemple client-cert.pem
. Ne copiez pas les guillemets eux-mêmes.
Supprimer un certificat client
Console (2e génération)
Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.
Accéder à la page Instances Cloud SQL
Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance .
Cliquez sur le lien Connexions dans le volet de navigation de gauche.
Accédez à la section Configurer les certificats de client SSL .
Recherchez le certificat que vous souhaitez supprimer, puis cliquez sur l'icône .
Dans la boîte de dialogue Supprimer le certificat client , cliquez sur OK .
Console (1re génération)
Cette opération entraîne le redémarrage de votre instance Cloud SQL.
Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.
Accéder à la page Instances Cloud SQL
Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance .
Cliquez sur le lien Connexions dans le volet de navigation de gauche.
Faites défiler la page vers le bas jusqu'à la section Configurer les certificats de client SSL , recherchez le certificat que vous souhaitez supprimer, puis cliquez sur l'icône .
Dans la boîte de dialogue Supprimer le certificat client , cliquez sur Redémarrer maintenant .
Vous devez redémarrer l'instance pour terminer l'opération.
gcloud
Supprimez le certificat client à l'aide de la commande ssl client-certs delete :
gcloud sql ssl client-certs delete [CERT_NAME] --instance=[INSTANCE_NAME]
gcloud sql instances restart [INSTANCE_NAME]
REST v1beta4
Répertoriez les certificats de l'instance pour obtenir l'empreinte du
certificat que vous souhaitez supprimer :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"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://www.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"
}
]
}
Prenez note du champ sha1Fingerprint
du certificat que vous souhaitez supprimer. N'incluez pas les guillemets.
Supprimez le certificat comme suit :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance
sha1FingerPrint : sha1FingerPrint du certificat
Méthode HTTP et URL :
DELETE https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X DELETE \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /sslCerts/sha1FingerPrint " | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Gérer les certificats de serveur
Effectuer une rotation des certificats de serveur
Si vous avez reçu une notification d'expiration de vos certificats ou si vous avez initié une rotation, vous devez accomplir les étapes suivantes :
Téléchargez les informations du nouveau certificat de serveur.
Mettez à jour vos clients afin qu'ils utilisent les informations du nouveau certificat de serveur.
Effectuez la rotation, qui place le certificat actuel dans l'emplacement "précédent" et active le certificat qui vient d'être ajouté.
Après la rotation du certificat SSL, un nouveau certificat est émis et utilisé lors de l'établissement des connexions à App Engine et au proxy Cloud SQL.
Console
Téléchargez les informations du nouveau certificat de serveur :
Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.Accéder à la page "Instances Cloud SQL"
Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance .
Cliquez sur le lien Connexions dans le volet de navigation de gauche.
Accédez à la section Configurer les certificats de serveur SSL .
Cliquez sur Créer un certificat .
Accédez à la section Télécharger les certificats de serveur SSL .
Cliquez sur Télécharger .
Les informations de certificat de serveur, encodées sous forme de fichier PEM, s'affichent et peuvent alors être téléchargées dans votre environnement local :
Mettez à jour l'ensemble de vos clients MySQL pour qu'ils utilisent les nouvelles informations. Pour cela, copiez le fichier téléchargé vers vos machines hôtes clientes afin de remplacer le fichier server-ca.pem
existant.
Après avoir mis à jour les clients, procédez à la rotation :
Revenez à la section Configurer les certificats de serveur SSL .
Cliquez sur Rotation de certificats .
Assurez-vous que les clients se connectent correctement.
Si certains clients ne parviennent pas à se connecter à l'aide du nouveau certificat, cliquez sur Rollback du certificat pour effectuer un rollback vers la configuration précédente.
gcloud
Créez un certificat de serveur :
gcloud beta sql ssl server-ca-certs create --instance=[INSTANCE]
Téléchargez les informations de certificat sous la forme d'un fichier PEM local :
gcloud beta sql ssl server-ca-certs list --format="value(cert)" \
--instance=[INSTANCE_NAME] > [FILE_PATH]/[FILE_NAME].pem
Mettez à jour l'ensemble de vos clients pour qu'ils utilisent les nouvelles informations. Pour cela, copiez le fichier téléchargé vers vos machines hôtes clientes afin de remplacer le fichier server-ca.pem existant.
Après avoir mis à jour les clients, procédez à la rotation :
gcloud beta sql ssl server-ca-certs rotate --instance=[INSTANCE_NAME]
Assurez-vous que les clients se connectent correctement.
Si certains clients ne parviennent pas à se connecter à l'aide du nouveau certificat, effectuez un rollback pour rétablir la configuration précédente.
REST v1beta4
Téléchargez les certificats de serveur :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"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"
}
Procédez à la rotation :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Effectuer un rollback pour annuler une opération de rotation de certificats
Après avoir accompli une rotation, tous les clients doivent utiliser le nouveau certificat pour se connecter à l'instance Cloud SQL. S'ils n'ont pas été mis à jour correctement pour utiliser les informations du nouveau certificat, ils ne pourront pas se connecter à l'instance à l'aide de SSL/TLS. Dans ce cas, vous pouvez revenir à la configuration de certificat précédente.
L'opération de restauration consiste à placer le certificat actif dans l'emplacement "à venir" (remplaçant tout certificat occupant cet emplacement). Le certificat "précédent" redevient le certificat actif, ramenant votre configuration à son état d'origine.
Remarque : Le rollback du certificat n'est disponible que jusqu'à expiration de l'ancien certificat.
Pour revenir à la configuration de certificat précédente :
Console
Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.Accéder à la page "Instances Cloud SQL"
Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance .
Cliquez sur le lien Connexions dans le volet de navigation de gauche.
Accédez à la section Configurer les certificats de serveur SSL .
Cliquez sur Rotation de certificats . L'action se termine en quelques secondes.
Cliquez sur Rollback du certificat .
gcloud
gcloud beta sql ssl server-ca-certs rollback --instance=[INSTANCE_NAME]
REST v1beta4
Téléchargez les certificats de serveur :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /listServerCas" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"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"
}
Copiez le champ sha1Fingerprint
correspondant à la version à restaurer.
Recherchez la version ayant une valeur createTime immédiatement antérieure à la version dont la valeur sha1Fingerprint est activeVersion
.
Effectuez la restauration avant la rotation :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Corps JSON de la requête :
{
"rotateServerCaContext": {"nextVersion": "sha1Fingerprint "}
}
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$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://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Démarrer une rotation
Vous n'avez pas besoin d'attendre l'e-mail de notification de Cloud SQL pour démarrer une rotation.
Vous pouvez en initier une à tout moment. Dès lors que vous démarrez une rotation, un nouveau certificat est créé et placé dans l'emplacement "à venir". Si un certificat occupait déjà cet emplacement, il est supprimé. En effet, il ne peut y avoir qu'un seul certificat "à venir".
Pour démarrer une rotation :
Console
Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.Accéder à la page "Instances Cloud SQL"
Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance .
Cliquez sur le lien Connexions dans le volet de navigation de gauche.
Accédez à la section Configurer les certificats de serveur SSL .
Cliquez sur Créer un certificat .
Procédez à la rotation comme décrit dans la section Effectuer la rotation des certificats de serveur .
REST v1beta4
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Procédez à la rotation comme décrit dans la section Effectuer la rotation des certificats de serveur .
Obtenir des informations sur un certificat de serveur
Vous pouvez obtenir des informations sur votre certificat de serveur, par exemple sa date d'expiration ou son niveau de chiffrement.
Console
Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.
Accéder à la page Instances Cloud SQL
Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance .
Cliquez sur le lien Connexions dans le volet de navigation de gauche.
Accédez à la section Configurer les certificats de serveur SSL .
Vous pouvez consulter la date d'expiration de votre certificat de serveur dans le tableau.
Pour afficher le type de certificat, utilisez la commande gcloud beta sql ssl server-ca-certs list --instance=[INSTANCE_NAME]
.
gcloud
gcloud beta sql ssl server-ca-certs list --instance=[INSTANCE_NAME]
REST v1beta4
Vous pouvez consulter des informations sur le certificat de serveur en utilisant la commande décrite dans votre
instance :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
GET https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=serverCaCert" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"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"
}
}
Réinitialiser la configuration SSL/TLS
Vous pouvez réinitialiser complètement votre configuration SSL/TLS.
Attention : Une fois cette action effectuée, vous ne pourrez plus vous connecter à votre instance via SSL/TLS tant que vous n'aurez pas créé de nouveaux certificats clients.
REST v1beta4
Actualisez le certificat :
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
project-id : ID du projet.
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d "" \ https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig
PowerShell (Windows)
Remarque : La commande ci-dessous suppose que vous avez utilisé gcloud init
ou gcloud auth login
pour authentifier gcloud
avec votre compte utilisateur.
Vous pouvez exécuter gcloud auth list
pour vérifier le compte actuellement actif.
Exécutez la commande suivante :
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -Uri "https://www.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://www.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://www.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
Créez de nouveaux certificats clients .
Étape suivante