Mise à jour des applications pour se connecter aux instances MariaDB à l'aide de nouveaux certificats/SSLTLS - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mise à jour des applications pour se connecter aux instances MariaDB à l'aide de nouveaux certificats/SSLTLS

Depuis le 13 janvier 2023, Amazon RDS a publié de nouveaux certificats d'autorité de certification (CA) pour la connexion à vos RDS instances de base de données à l'aide de Secure Socket Layer ou de Transport Layer Security (SSL/TLS). Vous trouverez ci-après des informations sur la mise à jour de vos applications afin d'utiliser les nouveaux certificats.

Cette rubrique peut vous aider à déterminer si vos applications nécessitent une vérification du certificat pour se connecter à vos instances de bases de données.

Note

Certaines applications sont configurées pour se connecter à MariaDB uniquement si la vérification du certificat sur le serveur s'effectue avec succès. Pour ces applications, vous devez mettre à jour les magasins d'approbations des applications clientes afin d'inclure les nouveaux certificats de l'autorité de certification.

Vous pouvez spécifier les SSL modes suivants : disabledpreferred, etrequired. Lorsque vous utilisez le preferred SSL mode et que le certificat CA n'existe pas ou n'est pas à jour, la connexion revient à ne pas être utilisée SSL et se connecte toujours correctement.

Nous recommandons d'éviter le mode preferred. En mode preferred, si la connexion rencontre un certificat non valide, elle cesse d'utiliser le chiffrement et continue sans chiffrement.

Une fois que vous avez mis à jour les certificats de l'autorité de certification dans les magasins d'approbations des applications clientes, vous pouvez soumettre les certificats de vos instances de bases de données à une rotation. Nous vous recommandons vivement de tester ces procédures dans un environnement de développement ou intermédiaire avant de les implémenter dans vos environnements de production.

Pour de plus amples informations sur la rotation de certificats, veuillez consulter Rotation de votre TLS certificatSSL/. Pour en savoir plus sur le téléchargement de certificats, consultez . Pour plus d'informations sur l'utilisation deSSL/TLSavec les instances de base de données MariaDB, consultez. SSL/TLSsupport pour les instances de base de données MariaDB sur Amazon RDS

Contrôle de la nécessité d'une vérification du certificat du client pour qu'il puisse se connecter

Vous pouvez vérifier si les JDBC clients et Mes SQL clients ont besoin d'une vérification de certificat pour se connecter.

JDBC

L'exemple suivant avec My SQL Connector/J 8.0 montre un moyen de vérifier les propriétés de JDBC connexion d'une application afin de déterminer si les connexions réussies nécessitent un certificat valide. Pour plus d'informations sur toutes les options de JDBC connexion pour MySQL, consultez la section Propriétés de configuration dans la SQL documentation My.

Lorsque vous utilisez My SQL Connector/J 8.0, une SSL connexion doit être vérifiée par rapport au certificat CA du serveur si les propriétés de votre connexion sont sslMode définies sur VERIFY_CA ouVERIFY_IDENTITY, comme dans l'exemple suivant.

Properties properties = new Properties(); properties.setProperty("sslMode", "VERIFY_IDENTITY"); properties.put("user", DB_USER); properties.put("password", DB_PASSWORD);
Note

Si vous utilisez le My SQL Java Connector v5.1.38 ou version ultérieure, ou le My SQL Java Connector v8.0.9 ou version ultérieure pour vous connecter à vos bases de données, même si vous n'avez pas explicitement configuré vos applications pour utiliserSSL/TLSlors de la connexion à vos bases de données, ces pilotes clients utilisent par défaut/. SSL TLS En outre, lorsqu'ils utilisentSSL/TLS, ils vérifient partiellement le certificat et ne parviennent pas à se connecter si le certificat du serveur de base de données est expiré.

Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

Mon SQL

Les exemples suivants avec My SQL Client montrent deux manières de vérifier Ma SQL connexion d'un script afin de déterminer si les connexions réussies nécessitent un certificat valide. Pour plus d'informations sur toutes les options de connexion avec My SQL Client, consultez la section Configuration côté client pour les connexions chiffrées dans la documentation MySQL.

Lorsque vous utilisez le client My SQL 5.7 ou My SQL 8.0, une SSL connexion doit être vérifiée par rapport au certificat CA du serveur, s'il s'agit de l'--ssl-modeoption que vous spécifiez VERIFY_CA ouVERIFY_IDENTITY, comme dans l'exemple suivant.

mysql -h mysql-database.rds.amazonaws.com -uadmin -ppassword --ssl-ca=/tmp/ssl-cert.pem --ssl-mode=VERIFY_CA

Lorsque vous utilisez le client My SQL 5.6, une SSL connexion doit être vérifiée par rapport au certificat CA du serveur si vous spécifiez l'--ssl-verify-server-certoption, comme dans l'exemple suivant.

mysql -h mysql-database.rds.amazonaws.com -uadmin -ppassword --ssl-ca=/tmp/ssl-cert.pem --ssl-verify-server-cert

Mise à jour du magasin d'approbations de votre application

Pour plus d'informations sur la mise à jour du trust store pour Mes SQL applications, consultez la section Utilisation deTLS/SSLavec MariaDB Connector/J dans la documentation de MariaDB.

Pour plus d'informations sur le téléchargement du certificat racine, consultez .

Pour obtenir des exemples de scripts qui importent des certificats, consultez Exemple de script pour importer les certificats dans votre magasin d'approbations.

Note

Lors de la mise à jour du magasin d'approbations, vous pouvez conserver les certificats plus anciens en complément de l'ajout des nouveaux certificats.

Si vous utilisez le pilote MariaDB JDBC Connector/J dans une application, définissez les propriétés suivantes dans l'application.

System.setProperty("javax.net.ssl.trustStore", certs); System.setProperty("javax.net.ssl.trustStorePassword", "password");

Lorsque vous démarrez l'application, définissez les propriétés suivantes.

java -Djavax.net.ssl.trustStore=/path_to_truststore/MyTruststore.jks -Djavax.net.ssl.trustStorePassword=my_truststore_password com.companyName.MyApplication
Note

Spécifiez des mots de passe autres que ceux indiqués ici, en tant que bonne pratique de sécurité.

Exemple de code Java pour établir des SSL connexions

L'exemple de code suivant montre comment configurer la SSL connexion à l'aide deJDBC.

private static final String DB_USER = "admin"; private static final String DB_USER = "user name"; private static final String DB_PASSWORD = "password"; // This key store has only the prod root ca. private static final String KEY_STORE_FILE_PATH = "file-path-to-keystore"; private static final String KEY_STORE_PASS = "keystore-password"; public static void main(String[] args) throws Exception { Class.forName("org.mariadb.jdbc.Driver"); System.setProperty("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH); System.setProperty("javax.net.ssl.trustStorePassword", KEY_STORE_PASS); Properties properties = new Properties(); properties.put("user", DB_USER); properties.put("password", DB_PASSWORD); Connection connection = DriverManager.getConnection("jdbc:mysql://ssl-mariadb-public.cni62e2e7kwh.us-east-1.rds.amazonaws.com:3306?useSSL=true",properties); Statement stmt=connection.createStatement(); ResultSet rs=stmt.executeQuery("SELECT 1 from dual"); return; }
Important

Une fois que vous avez déterminé que vos connexions à la base de données utilisentSSL/TLSet que vous avez mis à jour le magasin de confiance des applications, vous pouvez mettre à jour votre base de données pour utiliser les certificats rds-ca-rsa 2048-g1. Pour obtenir des instructions, veuillez consulter l'étape 3 dans Mettre à jour votre certificat CA en modifiant votre instance ou cluster de base de données.

Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.