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 connexion SSL via JDBC
Pour utiliser une connexion SSL via JDBC, vous devez créer un keystore, approuver le certificat d'autorité de certification racine Amazon RDS et utiliser l'extrait de code suivant.
Pour créer le magasin de clés au format JKS, vous pouvez utiliser la commande suivante. Pour plus d’informations sur la création du magasin de clés, consultez Creating a keystore
keytool -genkey -aliasclient-validity365-keyalgRSA-keystoreclientkeystore
Suivez les étapes ci-après pour approuver le certificat CA racine Amazon RDS.
Pour approuver le certificat de l'autorité de certification racine Amazon RDS
-
Téléchargez le fichier .pem de l’offre groupée de certificats 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 de certificats, consultez .
-
Extrayez chaque certificat du fichier .pem dans un fichier distinct à l’aide d’un utilitaire du système d’exploitation.
-
Convertissez chaque certificat au format .der à l’aide d’une commande
openssldistincte, en remplaçantcertificate-pem-filepar le nom du fichier .pem du certificat (sans l’extension .pem).openssl x509 -outform der -incertificate-pem-file.pem -outcertificate-pem-file.der -
Importez le certificat dans le magasin de clés à l’aide de la commande suivante.
keytool -import -alias rds-root -keystoreclientkeystore.jks-filecertificate-pem-file.derPour plus d’informations, consultez Rotation de votre certificat SSL/TLS.
-
Vérifiez que le magasin de clés a été créé avec succès.
keytool -list -v -keystoreclientkeystore.jksEntrez le mot de passe du magasin de clés lorsque vous y êtes invité.
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 } }
Note
Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.