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
keytool -genkey -alias
client
-validity365
-keyalgRSA
-keystoreclientkeystore
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
-
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 .
-
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
openssl
commande distincte, en remplaçantcertificate-pem-file
avec le nom du fichier .pem du certificat (sans l'extension .pem).openssl x509 -outform der -in
certificate-pem-file
.pem -outcertificate-pem-file
.der -
Importez chaque certificat dans le keystore à l'aide de la commande suivante.
keytool -import -alias rds-root -keystore
clientkeystore.jks
-filecertificate-pem-file
.derPour de plus amples informations, veuillez consulter Rotation de votre TLS certificatSSL/.
-
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é.