Cette page explique comment gérer les certificats CA de vos serveurs.
Utiliser des connexions chiffrées
En savoir plus sur la façon dont SQL Server utilise des connexions chiffrées .
Gérer les certificats CA de serveur (CA par instance)
Cette section explique comment gérer les certificats de l'autorité de certification du serveur créés en interne par Cloud SQL. Il s'agit du mode de certification de serveur par défaut dans Cloud SQL. Dans cette hiérarchie d'autorités de certification, Cloud SQL crée une autorité de certification de serveur pour chaque instance.
Effectuer une rotation des certificats CA de serveur
Si vous avez reçu une notification d'expiration de vos certificats ou si vous souhaitez initier une rotation, procédez comme suit pour effectuer la rotation. Avant de commencer la rotation, vous devez disposer d'une nouvelle autorité de certification de serveur sur l'instance. Si une nouvelle autorité de certification de serveur a déjà été créée, vous pouvez ignorer la première étape de la procédure suivante.
Créez une autorité de certification de serveur.
Téléchargez les informations du nouveau certificat CA du serveur :
Mettez à jour vos clients afin qu'ils utilisent les informations du nouveau certificat CA 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 d'authentification Cloud SQL.
Console
Téléchargez les informations du nouveau certificat CA de serveur :
Dans Google Cloud Console, accédez à la page Instances Cloud SQL .
Accéder à la page Instances Cloud SQL
Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
Dans le menu de navigation SQL, sélectionnez Connexions .
Cliquez sur l'onglet Sécurité .
Cliquez pour développer Gérer les certificats .
Sélectionnez Effectuer une rotation de certificat CA .
Si aucun certificat n'est éligible, l'option de rotation n'est pas disponible.
Cliquez sur Télécharger les certificats .
Les informations de certificat CA de serveur, encodées sous forme de fichier PEM, sont téléchargées dans votre environnement local :
Mettez à jour l'ensemble de vos clients SQL Server 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 à l'onglet Sécurité .
Cliquez pour développer Gérer les certificats .
Sélectionnez Effectuer une rotation de certificat CA .
Assurez-vous que les clients se connectent correctement.
Si certains clients ne parviennent pas à se connecter à l'aide du nouveau certificat, vous pouvez sélectionner Rollback du certificat CA pour effectuer un rollback vers la configuration précédente.
gcloud
Créez un certificat CA 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 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 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 v1
Téléchargez les certificats CA du 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://sqladmin.googleapis.com/v1/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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
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)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/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, effectuez les remplacements suivants :
project-id : ID du projet
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/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://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
Téléchargez les certificats CA du 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://sqladmin.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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
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)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.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, effectuez les remplacements suivants :
project-id : ID du projet
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://sqladmin.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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.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://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 "
}
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 ne sont pas mis à jour correctement pour utiliser les informations du nouveau certificat, ils ne peuvent 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 "à venir"). 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
Dans la console Google Cloud, accédez à la page Instances Cloud SQL .
Accéder à la page Instances Cloud SQL
Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
Dans le menu de navigation SQL, sélectionnez Connexions .
Cliquez sur l'onglet Sécurité .
Cliquez pour développer Gérer les certificats .
Sélectionnez Effectuer un rollback de certificat CA . Si aucun certificat n'est éligible, l'option de rollback n'est pas disponible. Sinon, l'action de rollback se termine après quelques secondes.
gcloud
gcloud sql ssl server-ca-certs rollback \
--instance=INSTANCE_NAME
REST v1
Téléchargez les certificats CA du 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://sqladmin.googleapis.com/v1/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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
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)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/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, effectuez les remplacements suivants :
project-id : ID du projet
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/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://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
Téléchargez les certificats CA du 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://sqladmin.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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
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)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.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, effectuez les remplacements suivants :
project-id : ID du projet
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://sqladmin.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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.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://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 "
}
Lancer une rotation
Vous n'avez pas besoin d'attendre l'e-mail 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 est déjà présent dans l'emplacement suivant au moment de votre demande, ce certificat est supprimé.
Il ne peut y avoir qu'un seul certificat à venir.
Pour démarrer une rotation :
Console
Dans la console Google Cloud, accédez à la page Instances Cloud SQL .
Accéder à la page Instances Cloud SQL
Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
Dans le menu de navigation SQL, sélectionnez Connexions .
Cliquez sur l'onglet Sécurité .
Cliquez sur Créer un certificat CA .
Cliquez pour développer Gérer les certificats .
Sélectionnez Effectuer une rotation de certificat CA .
Si aucun certificat n'est éligible, l'option de rotation n'est pas disponible.
Procédez à la rotation comme décrit dans la section Effectuer une rotation des certificats CA de serveur .
REST v1
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://sqladmin.googleapis.com/v1/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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/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://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 "
}
Procédez à la rotation comme décrit dans la section Effectuer une rotation des certificats CA 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://sqladmin.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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /rotateServerCa"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.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://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 "
}
Procédez à la rotation comme décrit dans la section Effectuer une rotation des certificats CA de serveur .
Obtenir des informations sur un certificat CA de serveur
Vous pouvez obtenir des informations sur votre certificat CA de serveur, par exemple sa date d'expiration ou son niveau de chiffrement.
Console
Dans la console Google Cloud, accédez à la page Instances Cloud SQL .
Accéder à la page Instances Cloud SQL
Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
Dans le menu de navigation SQL, sélectionnez Connexions .
Cliquez sur l'onglet Sécurité .
Dans le champ Gérer les certificats CA de serveur , vous pouvez voir la date d'expiration de votre certificat CA de serveur dans le tableau.
Pour afficher le type de certificat, utilisez la commande gcloud sql ssl server-ca-certs list --instance=INSTANCE_NAME
.
gcloud
gcloud sql ssl server-ca-certs list \
--instance= INSTANCE_NAME
REST v1
Lorsque vous décrivez votre instance, vous pouvez afficher des informations sur le certificat CA du 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://sqladmin.googleapis.com/v1/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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
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)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/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"
}
}
REST v1beta4
Lorsque vous décrivez votre instance, vous pouvez afficher des informations sur le certificat CA du 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://sqladmin.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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
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)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.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"
}
}
Afficher le contenu des certificats CA
Vous pouvez utiliser openssl storeutl
pour afficher le contenu des certificats d'autorité de certification.
Lorsque vous exécutez la commande beta sql ssl server-ca-certs list , vous pouvez obtenir plusieurs certificats d'autorité de certification à partir d'opérations de rotation précédentes.
gcloud
Exécutez la commande suivante :
gcloud beta sql ssl server-ca-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Remplacez INSTANCE_NAME par le nom de l'instance.
Utilisez openssl
pour examiner le contenu des certificats d'autorité de certification.
openssl storeutl -noout -text temp_cert.pem
Afficher le contenu d'un certificat de serveur
Vous pouvez utiliser
nmap
pour afficher le contenu des certificats de serveur. Pour télécharger et installer
nmap
, accédez à
https://nmap.org/ .
gcloud
Pour afficher le contenu du certificat du serveur, exécutez la commande suivante:
nmap -sV -p 1433 --script ssl-cert INSTANCE_IP_ADDRESS -Pn
Remplacez INSTANCE_IP_ADDRESS par l'adresse IP de l'instance.
Gérer les certificats de serveur (autorité de certification partagée)
Cette section explique comment gérer les certificats de serveur sur les instances qui utilisent des autorités de certification partagées.
Vous pouvez activer l'utilisation d'autorités de certification partagées en tant que mode d'autorité de certification de serveur pour votre instance en spécifiant GOOGLE_MANAGED_CAS_CA
pour le paramètre serverCaMode
(API Cloud SQL Admin) ou l'option --server-ca-mode
(gcloud CLI ) lorsque vous créez votre instance .
Effectuer une rotation des certificats de serveur
Si vous avez reçu une notification d'expiration de vos certificats ou si vous souhaitez en lancer une, suivez les étapes ci-dessous pour effectuer la rotation.
Avant de commencer la rotation, un nouveau certificat de serveur doit être créé pour la prochaine rotation. Si un nouveau certificat de serveur a déjà été créé pour la prochaine rotation, vous pouvez ignorer la première étape de la procédure suivante.
Pour effectuer une rotation du certificat de serveur sur votre instance, procédez comme suit:
Si vous avez besoin d'un nouveau certificat de serveur, créez-en un.
Si vos clients font déjà confiance au dernier lot d'autorités de certification régionales, cette étape est facultative. Toutefois, si vous devez mettre à jour vos clients avec les informations de l'autorité de certification du serveur, procédez comme suit:
Téléchargez les dernières informations sur la CA de serveur.
Mettez à jour vos clients afin qu'ils utilisent les dernières informations sur la CA de serveur.
Effectuez la rotation en déplaçant le certificat actif vers l'emplacement précédent et en activant le nouveau certificat.
Console
Vous ne pouvez pas utiliser la console Google Cloud pour faire pivoter les certificats de serveur sur les instances qui utilisent le service CA pendant la version preview .
Utilisez plutôt la commande gcloud beta sql ssl server-certs rotate
ou les commandes de l'API Cloud SQL Admin.
gcloud
Pour créer un certificat de serveur, exécutez la commande suivante:
gcloud beta sql ssl server-certs create \
--instance=INSTANCE
Remplacez INSTANCE par le nom de l'instance.
Assurez-vous d'utiliser le dernier groupe d'autorités de certification .
Si vous n'utilisez pas le dernier bundle de CA, exécutez la commande suivante pour télécharger les dernières informations de l'autorité de certification de serveur pour l'instance dans un fichier PEM local:
gcloud beta sql ssl server-certs list \
--format="value(ca_cert.cert)" \
--instance=INSTANCE_NAME > \
FILE_PATH /server-ca.pem
Vous pouvez également télécharger les bundles de certificats d'autorité de certification à partir du tableau des bundles de certificats d'autorité de certification racine et régionale sur cette page.
Mettez ensuite à jour l'ensemble de vos clients pour qu'ils utilisent les nouvelles informations de l'autorité de certification de serveur en copiant le fichier téléchargé sur vos machines hôtes clientes, en remplaçant les fichiers server-ca.pem
existants.
Une fois que vous avez mis à jour tous vos clients (si des mises à jour sont nécessaires), effectuez la rotation:
gcloud beta sql ssl server-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 de serveur, effectuez un rollback pour rétablir la configuration précédente.
REST v1
Créez un certificat 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 :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-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 "
}
Si vous devez télécharger les informations du certificat de l'autorité de certification du serveur, vous pouvez utiliser la commande suivante.
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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
Terminez 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-09-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
Créez un certificat 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 :
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /addServerCertificate" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-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 "
}
Si vous devez télécharger les informations du certificat de l'autorité de certification du serveur, vous pouvez utiliser la commande suivante.
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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
Terminez 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2024-09-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 "
}
Annuler une rotation de certificats
Une fois la rotation du certificat du serveur terminée, tous vos clients doivent utiliser le nouveau certificat pour se connecter à votre instance Cloud SQL. S'ils ne sont pas mis à jour correctement pour utiliser les informations du nouveau certificat, ils ne peuvent 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 rollback consiste à placer le certificat actif dans l'emplacement "à venir", qui remplace tout certificat "à venir". Le certificat "précédent" redevient le certificat actif, ramenant votre configuration à son état d'origine.
Console
Vous ne pouvez pas utiliser la console Google Cloud pour annuler les certificats de serveur sur les instances qui utilisent le service CA pendant la version preview .
Utilisez plutôt la commande gcloud beta sql ssl server-certs rollback
ou les commandes de l'API Cloud SQL Admin.
gcloud
gcloud beta sql ssl server-certs rollback \
--instance=INSTANCE_NAME
REST v1
Répertoriez vos 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Corps JSON de la requête :
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"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
Répertoriez vos 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est le compte actuellement actif.
Exécutez la commande suivante :
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /listServerCertificates" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"caCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_ONE ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-10T17:18:54.935Z",
"expirationTime": "2034-07-10T17:19:54.935Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_CA_CERT_TWO ",
"cert": "CERT_VALUE ",
"commonName": "CA_SERVER_NAME ",
"sha1Fingerprint": "sha1Fingerprint_CA_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-07-14T22:43:56.458Z",
"expirationTime": "2034-11-11T22:44:56.458Z"
}
],
"serverCerts": [
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_ONE ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_ONE ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-16T18:11:39Z",
"expirationTime": "2025-09-16T18:11:38Z"
},
{
"kind": "sql#sslCert",
"certSerialNumber": "CERT_SERIAL_NUMBER_SERVER_CERT_TWO ",
"cert": "CERT_VALUE "
"commonName": "SUBJECT_VALUE ",
"sha1Fingerprint": "sha1Fingerprint_SERVER_CERT_TWO ",
"instance": "INSTANCE_NAME ",
"createTime": "2024-09-10T20:56:06Z",
"expirationTime": "2025-09-10T20:56:05Z"
}
],
"activeVersion": "sha1Fingerprint_SERVER_CERT_TWO ",
"kind": "sql#instancesListServerCertificates"
}
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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate
Corps JSON de la requête :
{
"rotateServerCertificateContext": {"nextVersion": "sha1Fingerprint "}
}
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Remarque : La commande suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /rotateServerCertificate" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
Réponse
{
"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 "
}
Afficher le contenu des certificats CA
Vous pouvez utiliser l'utilitaire openssl storeutl
pour afficher le contenu des certificats d'autorité de certification.
Lorsque vous exécutez la commande beta sql ssl server-certs list , vous obtenez toujours plusieurs certificats CA en raison de la chaîne de confiance.
Vous pouvez également obtenir plusieurs certificats d'autorité de certification à partir d'opérations de rotation précédentes.
gcloud
Exécutez la commande suivante :
gcloud beta sql ssl server-certs list \
--instance= INSTANCE_NAME \
--format= 'value(cert)' > temp_cert.pem
Remplacez INSTANCE_NAME par le nom de l'instance.
Utilisez openssl
pour examiner le contenu des certificats d'autorité de certification.
openssl storeutl -noout -text temp_cert.pem
Télécharger des groupes de certificats d'autorités de certification racine et régionales
Vous pouvez télécharger les bundles de certificats d'autorité de certification racine et régionale à partir du tableau suivant.
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.
Console
Dans la console Google Cloud, accédez à la page Instances Cloud SQL .
Accéder à la page Instances Cloud SQL
Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
Dans le menu de navigation SQL, sélectionnez Connexions .
Accédez à la section Réinitialiser la configuration SSL .
Cliquez sur Réinitialiser la configuration SSL .
gcloud
Actualisez le certificat :
gcloud sql instances reset-ssl-config INSTANCE_NAME
REST v1beta4
Actualisez le certificat :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
project-id : ID du projet
instance-id : ID de l'instance.
Méthode HTTP et URL :
POST https://sqladmin.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 suivante suppose que vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
, ou en utilisant Cloud Shell , qui vous connecte automatiquement à la CLI gcloud
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /resetSslConfig"
PowerShell (Windows)
Remarque : La commande suivante suppose que vous vous êtes connecté à la CLI gcloud
avec votre compte utilisateur en exécutant la commande gcloud init
ou gcloud auth login
.
Vous pouvez exécuter la commande gcloud auth list
pour vérifier quel est 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://sqladmin.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://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 "
}
Étape suivante