Configuration d'une SSL connexion via JDBC - 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.

Configuration d'une SSL connexion via JDBC

Pour utiliser une SSL connexionJDBC, vous devez créer un keystore, faire confiance au certificat RDS racine de l'autorité de certification Amazon et utiliser l'extrait de code spécifié ci-dessous.

Pour créer le keystore au JKS format, vous pouvez utiliser la commande suivante. Pour plus d'informations sur la création du keystore, consultez la section Création d'un keystore dans la documentation Oracle. Pour des informations de référence, voir keytool dans le manuel Java Platform, Standard Edition Tools Reference.

keytool -genkey -alias client -validity 365 -keyalg RSA -keystore clientkeystore

Suivez les étapes ci-dessous pour faire confiance au certificat RDS racine de l'autorité de certification Amazon.

Pour faire confiance au certificat CA RDS racine d'Amazon
  1. Téléchargez le fichier .pem du bundle de certificats qui fonctionne pour tous Régions AWS et placez le fichier dans le répertoire ssl_wallet.

    Pour plus d'informations sur le téléchargement de certificats, veuillez consulter .

  2. Extrayez chaque certificat du fichier .pem dans un fichier distinct à l'aide d'un utilitaire du système d'exploitation.

  3. Convertissez chaque certificat au format .der à l'aide d'une openssl commande distincte, en remplaçant certificate-pem-file avec le nom du fichier .pem du certificat (sans l'extension .pem).

    openssl x509 -outform der -in certificate-pem-file.pem -out certificate-pem-file.der
  4. Importez chaque certificat dans le keystore à l'aide de la commande suivante.

    keytool -import -alias rds-root -keystore clientkeystore.jks -file certificate-pem-file.der

    Pour de plus amples informations, veuillez consulter Rotation de votre TLS certificatSSL/.

  5. Vérifiez que le magasin de clés a été créé avec succès.

    keytool -list -v -keystore clientkeystore.jks

    Entrez le mot de passe du magasin de clés lorsque vous y êtes invité.

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

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 } }
Note

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