Gérer des certificats SSL/TLS

Cette page explique comment gérer les certificats CA de vos clients et serveurs.

Gérer les certificats client

Utilisez les procédures suivantes pour gérer les certificats client dans Cloud SQL.

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

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Connexions.
  4. Cliquez sur l'onglet Sécurité.
  5. Dans Gérer les certificats client, cliquez sur le nom du certificat.
  6. La page Certificat client SSL s'ouvre et affiche le certificat client (client-cert.pem) avec un lien pour télécharger le certificat.

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 v1

  1. 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, 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/sslCerts

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Prenez note du champ sha1Fingerprint du certificat que vous souhaitez récupérer. N'incluez pas les guillemets.

  2. Récupérez le certificat en procédant comme suit :

    Avant d'utiliser les données de requête, 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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

  3. 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.

REST v1beta4

  1. 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, 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/sslCerts

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Prenez note du champ sha1Fingerprint du certificat que vous souhaitez récupérer. N'incluez pas les guillemets.

  2. Récupérez le certificat en procédant comme suit :

    Avant d'utiliser les données de requête, 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

  3. 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

Lorsque vous supprimez un certificat client, le serveur de base de données est mis à jour et n'a pas besoin d'être redémarré.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Connexions.
  4. Cliquez sur l'onglet Sécurité.
  5. Dans Gérer les certificats client, recherchez le certificat que vous souhaitez supprimer et cliquez sur Supprimer..
  6. Dans le volet Supprimer le certificat client, cliquez sur OK.

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

REST v1

  1. 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, 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/sslCerts

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Prenez note du champ sha1Fingerprint du certificat que vous souhaitez supprimer. N'incluez pas les guillemets.

  2. Supprimez le certificat comme suit :

    Avant d'utiliser les données de requête, 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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

REST v1beta4

  1. 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, 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/sslCerts

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    Prenez note du champ sha1Fingerprint du certificat que vous souhaitez supprimer. N'incluez pas les guillemets.

  2. Supprimez le certificat comme suit :

    Avant d'utiliser les données de requête, 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts/sha1FingerPrint

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

Gérer les certificats CA du serveur

Effectuer une rotation des certificats CA du 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 :

  1. Téléchargez les informations du nouveau certificat CA du serveur :
  2. Mettez à jour vos clients afin qu'ils utilisent les informations du nouveau certificat CA de serveur.
  3. Effectuez la rotation, qui place le certificat actuel dans l'emplacement "précédent" et active le certificat qui vient d'être ajouté.

Console

Téléchargez les informations du nouveau certificat CA de serveur :

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Connexions.
  4. Cliquez sur l'onglet Sécurité.
  5. Cliquez pour développer Gérer les certificats.
  6. Sélectionnez Alterner le certificat CA.

    Si aucun certificat n'est disponible, l'option d'alternance n'est pas disponible.

  7. 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 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 :

  1. Revenez à l'onglet Sécurité.
  2. Cliquez pour développer Gérer les certificats.
  3. Sélectionnez Alterner le certificat CA.
  4. 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

  1. Créez un certificat CA de serveur :
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE
    
  2. 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
    
  3. 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.
  4. Après avoir mis à jour les clients, procédez à la rotation :
    gcloud beta sql ssl server-ca-certs rotate \
    --instance=INSTANCE_NAME
          
  5. 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

  1. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

  2. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

REST v1beta4

  1. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

  2. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

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 correctement mis à jour 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.

Pour revenir à la configuration de certificat précédente :

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Connexions.
  4. Cliquez sur l'onglet Sécurité.
  5. Cliquez pour développer Gérer les certificats.
  6. Sélectionnez Rollback du certificat CA.

    Si aucun certificat n'est disponible, l'option de rollback n'est pas disponible. Sinon, l'action de rollback se termine après quelques secondes.

gcloud

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

REST v1

  1. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

  2. 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.

  3. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

REST v1beta4

  1. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

  2. 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.

  3. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

Lancer 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 est déjà présent dans l'emplacement "à venir" au moment de votre demande, il est supprimé. Il ne peut y avoir qu'un seul certificat "à venir".

Pour démarrer une rotation :

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Connexions.
  4. Cliquez sur l'onglet Sécurité.
  5. Cliquez sur Créer un certificat CA.
  6. Cliquez pour développer Gérer les certificats.
  7. Sélectionnez Alterner le certificat CA.

    S'il n'y a pas de certificat éligible, l'option d'alternance n'est pas disponible.

  8. Procédez à la rotation comme décrit dans la section Effectuer une rotation des certificats CA du serveur.

gcloud

  1. Démarrez la rotation :
    gcloud beta sql ssl server-ca-certs create \
    --instance=INSTANCE_NAME
         
  2. Procédez à la rotation comme décrit dans la section Effectuer une rotation des certificats CA du serveur.

REST v1

  1. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

  2. Procédez à la rotation comme décrit dans la section Effectuer une rotation des certificats CA du serveur.

REST v1beta4

  1. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

  2. Procédez à la rotation comme décrit dans la section Effectuer une rotation des certificats CA du 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

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Connexions.
  4. Cliquez sur l'onglet Sécurité.

    Dans Gérer les certificats CA de serveur, vous pouvez consulter la date d'expiration de votre certificat CA 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 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 :

Vous devriez recevoir une réponse JSON de ce type :

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 :

Vous devriez recevoir une réponse JSON de ce type :

Réinitialiser la configuration SSL/TLS

Vous pouvez réinitialiser complètement votre configuration SSL/TLS.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation SQL, sélectionnez Connexions.
  4. Accédez à la section Réinitialiser la configuration SSL.
  5. Cliquez sur Réinitialiser la configuration SSL.

gcloud

  1. Actualisez le certificat :

    gcloud sql instances reset-ssl-config INSTANCE_NAME
    
  2. gcloud sql instances restart INSTANCE_NAME
    
  3. Créez de nouveaux certificats clients.

REST v1beta4

  1. 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 :

    Vous devriez recevoir une réponse JSON de ce type :

  2. Créez de nouveaux certificats clients.

Étape suivante