Mise à jour des applications pour se connecter aux instances de bases de données Oracle à l'aide des nouveaux certificats SSL/TLS - 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 de bases de données Oracle à l'aide des nouveaux certificats SSL/TLS

Le 13 janvier 2023, Amazon RDS a publié de nouveaux certificats d'autorité de certification (CA) pour la connexion à vos instances de base de données RDS à l'aide du protocole Secure Socket Layer ou 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 des applications clientes utilisent un protocole SSL/TLS pour se connecter à vos instances de bases de données.

Important

Lorsque vous modifiez le certificat d'une instance de base de données Amazon RDS for Oracle, seul le processus d'écoute de base de données est redémarré. L'instance de base de données n'est pas redémarrée. Les connexions de base de données existantes ne sont pas affectées, mais les nouvelles connexions rencontrent des erreurs pendant une brève période au cours du redémarrage du processus d'écoute.

Note

Pour les applications clientes qui utilisent un protocole SSL/TLS pour se connecter à vos instances de bases de données, vous devez mettre à jour les magasins d'approbations de vos applications clientes qui incluent les nouveaux certificats de l'autorité de certification.

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 de plus amples informations sur l'utilisation des protocoles SSL/TLS avec les instances de bases de données Oracle, veuillez consulter Oracle Secure Sockets Layer (SSL).

Déterminer si les applications se connectent via SSL

Si votre instance de base de données Oracle utilise un groupe d'options avec l'option SSL ajoutée, vous pouvez utiliser SSL. Procédez à la vérification en suivant les instructions dans Liste des options et des paramètres d'options pour un groupe d'options. Pour plus d'informations sur l'option SSL, veuillez consulter Oracle Secure Sockets Layer (SSL).

Vérifiez le journal d'écouteur afin de déterminer s'il existe des connexions SSL. Voici un exemple de sortie dans un journal d'écouteur.

date time * (CONNECT_DATA=(CID=(PROGRAM=program) (HOST=host)(USER=user))(SID=sid)) * (ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=port)) * establish * ORCL * 0

Lorsque PROTOCOL possède la valeur tcps pour une entrée, il affiche une connexion SSL. Cependant, quand HOST est 127.0.0.1, vous pouvez ignorer l'entrée. Les connexions provenant de 127.0.0.1 sont un agent de gestion locale sur l'instance de base de données. Il ne s'agit pas de connexions SSL externes. Par conséquent, vous avez des applications se connectant à l'aide d'un protocole SSL si vous voyez des entrées de journal d'écouteur pour lesquelles PROTOCOL est tcps et HOST n'est pas 127.0.0.1.

Pour vérifier le journal d'écouteur, vous pouvez publier le journal dans Amazon CloudWatch Logs. Pour plus d'informations, consultez Publication de journaux Oracle sur Amazon CloudWatch Logs.

Mise à jour du magasin d'approbations de votre application

Vous pouvez mettre à jour le magasin d'approbations pour les applications qui utilisent SQL*Plus ou JDBC dans le cadre de connexions SSL/TLS.

Mise à jour du magasin d'approbations des applications pour SQL*Plus

Vous pouvez mettre à jour le magasin d'approbations pour les applications qui utilisent SQL*Plus dans le cadre de connexions SSL/TLS.

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.

Pour mettre à jour le magasin d'approbations pour les applications SQL*Plus
  1. Téléchargez le nouveau certificat racine qui fonctionne pour toutes les régions AWS et placez le fichier dans le répertoire ssl_wallet.

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

  2. Exécutez la commande suivante afin de mettre à jour le portefeuille Oracle.

    prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert $ORACLE_HOME/ssl_wallet/ssl-cert.pem -auto_login_only

    Remplacez le nom du fichier par celui du fichier téléchargé.

  3. Exécutez la commande suivante pour vérifier que le portefeuille a été installé avec succès.

    prompt>orapki wallet display -wallet $ORACLE_HOME/ssl_wallet

    La sortie doit contenir les lignes suivantes :

    Trusted Certificates: Subject: CN=Amazon RDS Root 2019 CA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,L=Seattle,ST=Washington,C=US

Mise à jour du magasin d'approbations de votre application pour JDBC

Vous pouvez mettre à jour le magasin d'approbations pour les applications qui utilisent JDBC dans le cadre de connexions SSL/TLS.

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.

Exemple de code Java pour l'établissement de connexions SSL

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

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; public class OracleSslConnectionTest { private static final String DB_SERVER_NAME = "<dns-name-provided-by-amazon-rds>"; private static final Integer SSL_PORT = "<ssl-option-port-configured-in-option-group>"; private static final String DB_SID = "<oracle-sid>"; 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 SQLException { final Properties properties = new Properties(); final String connectionString = String.format( "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))", DB_SERVER_NAME, SSL_PORT, DB_SID); properties.put("user", DB_USER); properties.put("password", DB_PASSWORD); properties.put("oracle.jdbc.J2EE13Compliant", "true"); properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH); properties.put("javax.net.ssl.trustStoreType", "JKS"); properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS); final Connection connection = DriverManager.getConnection(connectionString, properties); // If no exception, that means handshake has passed, and an SSL connection can be opened } }
Important

Une fois que vous avez déterminé que vos connexions de base de données utilisent SSL/TLS et que vous avez mis à jour le magasin d'approbations de votre application, vous pouvez mettre à jour votre base de données pour utiliser les certificats rds-ca-rsa2048-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.