Comprendre les modifications liées au changement d’autorité de certification racine pour Azure Database for MariaDB

Important

Azure Database for MariaDB est en voie de mise hors service. Nous vous recommandons vivement de migrer vers Azure Database pour MySQL. Pour plus d’informations sur la migration vers Azure Database pour MySQL, consultez Qu’est-ce qui se passe dans Azure Database for MariaDB ?.

Azure Database for MariaDB dans le cadre des meilleures pratiques de maintenance et de sécurité standard termine la modification du certificat racine à compter de mars 2023. Cet article fournit davantage de détails sur les changements, les ressources affectées et les étapes nécessaires pour garantir que votre application maintient sa connectivité à votre serveur de base de données.

Remarque

Cet article contient des références au terme esclave, un terme que Microsoft n’utilise plus. Lorsque le terme sera supprimé du logiciel, nous le supprimerons de cet article.

Pourquoi la mise à jour du certificat racine est obligatoire ?

Les utilisateurs d’Azure Database for MariaDB peuvent uniquement utiliser le certificat prédéfini pour se connecter à leur serveur MariaDB, qui se trouve ici. Toutefois, le forum Certificate Authority (CA) Browser a récemment publié des rapports indiquant que plusieurs certificats émis par les fournisseurs d’autorité de certification n’étaient pas conformes.

Conformément aux exigences de conformité du secteur, les fournisseurs d’autorité de certification ont commencé à révoquer les certificats d’autorité de certification non conformes, en demandant aux serveurs d’utiliser des certificats émis par des autorités de certification conformes et signés par des certificats d’autorité de certification provenant de ces dernières. Étant donné qu’Azure Database for MariaDB utilisait l’un de ces certificats non conformes, nous avions besoin de procéder à la permutation du certificat vers la version conforme afin de réduire la menace envers vos serveurs MySQL.

Est-ce que je dois apporter des modifications à mon client pour maintenir la connectivité ?

Si vous avez suivi les étapes mentionnés sous Créer un certificat d’autorité de certification combiné ci-dessous, vous pouvez continuer à vous connecter tant que le certificat BaltimoreCyberTrustRoot n’est pas supprimé du certificat d’autorité de certification combiné. Afin de maintenir la connectivité, nous vous recommandons de conserver BaltimoreCyberTrustRoot dans votre certificat d’autorité de certification combiné jusqu’à nouvel ordre.

Créer un certificat d’autorité de certification combiné

  • Téléchargez BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 CA à partir de liens ci-dessous :

  • Générez un magasin de certificats d’autorité de certification combiné où les certificats BaltimoreCyberTrustRoot et DigiCertGlobalRootG2 sont inclus.

    • Pour les utilisateurs Java (MariaDB Connector/J), exécutez :

      keytool -importcert -alias MariaDBServerCACert  -file D:\BaltimoreCyberTrustRoot.crt.pem  -keystore truststore -storepass password -noprompt
      
      keytool -importcert -alias MariaDBServerCACert2  -file D:\DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password  -noprompt
      

      Remplacez ensuite le fichier de magasin de clés d’origine par le nouveau fichier généré :

      • System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
      • System.setProperty("javax.net.ssl.trustStorePassword","password");
    • Si vous utilisez .NET (MariaDB Connector/NET, MariaDBConnector), assurez-vous que BaltimoreCyberTrustRoot et DigiCertGlobalRootG2 existent dans le magasin de certificats Windows et dans les autorités de certification racines de confiance. S’il n’existe aucun certificat, importez le certificat manquant.

      Azure Database for MariaDB .net cert

    • Si vous utilisez .NET sur Linux en utilisant SSL_CERT_DIR, assurez-vous que BaltimoreCyberTrustRoot et DigiCertGlobalRootG2 existent tous deux dans le répertoire indiqué par SSL_CERT_DIR. S’il n’existe aucun certificat, créez le fichier de certificat manquant.

    • Si vous utilisez d’autres solutions (MariaDB Client/MariaDB Workbench/C/C++/Go/Python/Ruby/PHP/NodeJS/Perl/Swift), vous pouvez fusionner deux fichiers de certificat d’autorité de certification comme suit :

    -----BEGIN CERTIFICATE-----
    (Root CA1: BaltimoreCyberTrustRoot.crt.pem)
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    (Root CA2: DigiCertGlobalRootG2.crt.pem)
    -----END CERTIFICATE-----
    
  • Remplacez le fichier .pem d’origine de l’autorité de certification racine par le fichier d’autorité de certification racine combiné et redémarrez votre application/client.

  • Ensuite, après le déploiement du nouveau certificat côté serveur, vous pouvez remplacer votre fichier .pem d’autorité de certification par DigiCertGlobalRootG2.crt.pem.

Si je n’utilise pas SSL/TLS, dois-je quand même mettre à jour l’autorité de certification racine ?

Aucune action n’est requise si vous n’utilisez pas SSL/TLS.

Que se passe-t-il si nous avons supprimé le certificat BaltimoreCyberTrustRoot ?

Vous commencerez à observer des erreurs lors de la connexion à votre serveur Azure Database for MariaDB. Vous devrez reconfigurer SSL avec le certificat BaltimoreCyberTrustRoot pour maintenir la connectivité.

Forum aux questions

1. Si je n’utilise pas SSL/TLS, dois-je toujours mettre à jour l’autorité de certification racine ?

Aucune action n’est requise si vous n’utilisez pas SSL/TLS.

2. Si j’utilise SSL/TLS, dois-je redémarrer mon serveur de base de données pour mettre à jour l’autorité de certification racine ?

Non, vous n’avez pas besoin de redémarrer le serveur de base de données pour commencer à utiliser le nouveau certificat. La mise à jour des certificats est une modification côté client, et les connexions clientes entrantes doivent utiliser le nouveau certificat pour s’assurer qu’elles peuvent se connecter au serveur de base de données.

3. Comment savoir si j’utilise SSL/TLS avec la vérification du certificat racine ?

Vous pouvez déterminer si vos connexions vérifient le certificat racine en examinant votre chaîne de connexion.

  • Si votre chaîne de connexion inclut sslmode=verify-ca ou sslmode=verify-identity, vous devez mettre à jour le certificat.
  • Si votre chaîne de connexion inclut sslmode=disable, sslmode=allow, sslmode=prefer ou sslmode=require, vous n’avez pas besoin de mettre à jour les certificats.
  • Si votre chaîne de connexion ne spécifie pas sslmode, vous n’avez pas besoin de mettre à jour les certificats.

Si vous utilisez un client qui abstrait la chaîne de connexion, consultez la documentation du client pour savoir s’il vérifie les certificats.

4. Quel est l’impact de l’utilisation d’App Service avec Azure Database for MariaDB ?

Pour les services Azure App Service qui se connectent à Azure Database for MariaDB, deux scénarios sont possibles et dépendent de la façon dont vous utilisez SSL avec votre application.

  • Ce nouveau certificat a été ajouté à App Service au niveau de la plateforme. Si vous utilisez les certificats SSL inclus sur la plateforme App Service dans votre application, aucune action n’est nécessaire. Il s’agit du scénario le plus courant.
  • Si vous incluez explicitement le chemin d’accès au fichier de certificat SSL dans votre code, vous devez télécharger le nouveau certificat et mettre à jour le code pour utiliser le nouveau certificat. Un bon exemple de ce scénario est que vous utilisez des conteneurs personnalisés dans App Service comme partagé dans la documentation App Service. Il s’agit d’un scénario rare, mais nous l’avons déjà observé chez certains utilisateurs.

5. Quel est l’impact si vous utilisez Azure Kubernetes Services (AKS) avec Azure Database for MariaDB ?

Si vous essayez de vous connecter à Azure Database for MariaDB à l’aide d’Azure Kubernetes Service (AKS), cela est similaire à un accès à partir d’un environnement d’hôte de clients dédié. Reportez-vous aux étapes indiquées ici.

6. Quel est l’impact de l’utilisation d’Azure Data Factory pour se connecter à Azure Database for MariaDB ?

Le connecteur qui utilise Azure Integration Runtime utilise des certificats du magasin de certificats Windows dans l’environnement hébergé par Azure. Comme ces certificats sont déjà compatibles avec les certificats récemment appliqués, aucune action n’est nécessaire.

Pour le connecteur qui utilise le runtime d’intégration auto-hébergé où vous incluez explicitement le chemin d’accès au fichier de certificat SSL dans votre chaîne de connexion, vous devez télécharger le nouveau certificat et mettre à jour la chaîne de connexion de façon à ce qu’elle l’utilise.

7. Dois-je prévoir un temps d’arrêt lié à la maintenance du serveur de base de données pour effectuer cette modification ?

Non. Étant donné que la modification est uniquement côté client pour la connexion au serveur de base de données, aucun temps d’arrêt lié à la maintenance n’est nécessaire pour le serveur de base de données lors de cette modification.

8. À quelle fréquence Microsoft met-il à jour ses certificats ou quelle est la stratégie d’expiration ?

Les certificats utilisés par Azure Database for MariaDB sont fournis par des autorités de certification approuvées. Par conséquent, la prise en charge de ces certificats est liée à la prise en charge de ces certificats par l’autorité de certification. L’expiration du certificat BaltimoreCyberTrustRoot est prévue pour 2025. Microsoft devra donc procéder à un changement de certificat avant l’expiration.

9. Si j’utilise des réplicas en lecture, dois-je effectuer cette mise à jour uniquement sur le serveur source ou les réplicas en lecture ?

Étant donné que cette mise à jour est une modification côté client, si le client avait l’habitude de lire les données du serveur de réplica, vous devez également appliquer les modifications pour ces clients.

10. Si j’utilise la réplication de données entrantes, dois-je effectuer une action ?

  • Si la réplication des données provient d’une machine virtuelle (locale ou machine virtuelle Azure) vers Azure Database pour MySQL, vous devez case activée si SSL est utilisé pour créer le réplica. Exécutez SHOW SLAVE STATUS et vérifiez le paramètre suivant.

    Master_SSL_Allowed            : Yes
    Master_SSL_CA_File            : ~\azure_mysqlservice.pem
    Master_SSL_CA_Path            :
    Master_SSL_Cert               : ~\azure_mysqlclient_cert.pem
    Master_SSL_Cipher             :
    Master_SSL_Key                : ~\azure_mysqlclient_key.pem
    

Si vous utilisez la réplication des données entrantes pour vous connecter à Azure Database pour MySQL, deux éléments sont à prendre en compte :

  • Si la réplication des données provient d’une machine virtuelle (locale ou machine virtuelle Azure) vers Azure Database pour MySQL, vous devez case activée si SSL est utilisé pour créer le réplica. Exécutez SHOW SLAVE STATUS et vérifiez le paramètre suivant.

    Master_SSL_Allowed            : Yes
    Master_SSL_CA_File            : ~\azure_mysqlservice.pem
    Master_SSL_CA_Path            :
    Master_SSL_Cert               : ~\azure_mysqlclient_cert.pem
    Master_SSL_Cipher             :
    Master_SSL_Key                : ~\azure_mysqlclient_key.pem
    

    Si vous constatez que le certificat est fourni pour CA_file, SSL_Cert et SSL_Key, vous devrez mettre à jour le fichier en ajoutant le nouveau certificat, et créer un fichier de certificat combiné.

  • Si la réplication des données s’effectue entre deux instances d’Azure Database pour MySQL, vous devez réinitialiser le réplica en exécutant CALL mysql.az_replication_change_master et en fournissant le nouveau certificat racine double en tant que dernier paramètre master_ssl_ca.

11. Existe-t-il une requête côté serveur pour vérifier si SSL est utilisé ?

Pour vérifier si vous utilisez une connexion SSL pour vous connecter au serveur, consultez Vérification SSL.

12. Une action est-elle nécessaire si je dispose déjà de DigiCertGlobalRootG2 dans mon fichier de certificat ?

Non. Aucune action n’est nécessaire si votre fichier de certificat contient déjà DigiCertGlobalRootG2.

13. Que se passe-t-il si j’ai d’autres questions ?

Si vous avez des questions, posez-les aux experts de la communauté dans Microsoft Q&A. Si vous disposez d'un plan de support et que vous avez besoin d'une aide technique, contactez-nous.