Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione di una SSL connessione tramite JDBC
Per utilizzare una SSL connessioneJDBC, devi creare un keystore, considerare attendibile il certificato Amazon RDS root CA e utilizzare lo snippet di codice specificato di seguito.
Per creare il keystore in JKS formato, puoi usare il seguente comando. Per ulteriori informazioni sulla creazione del keystore, vedere Creazione di un keystore
keytool -genkey -alias
client
-validity365
-keyalgRSA
-keystoreclientkeystore
Segui i seguenti passaggi per considerare attendibile il certificato Amazon RDS root CA.
Per considerare attendibile il certificato Amazon RDS root CA
-
Scarica il file .pem del pacchetto di certificati che funziona per tutti Regioni AWS e inserisci il file nella directory ssl_wallet.
Per ulteriori informazioni sul download dei certificati, consultare .
-
Estrai ogni certificato nel file.pem in un file separato utilizzando un'utilità del sistema operativo.
-
Converti ogni certificato in formato.der utilizzando un comando separato
openssl
, sostituendocertificate-pem-file
con il nome del file .pem del certificato (senza l'estensione.pem).openssl x509 -outform der -in
certificate-pem-file
.pem -outcertificate-pem-file
.der -
Importa ogni certificato nel keystore usando il seguente comando.
keytool -import -alias rds-root -keystore
clientkeystore.jks
-filecertificate-pem-file
.derPer ulteriori informazioni, consulta Rotazione del certificatoSSL/TLS.
-
Verificare che il keystore sia stato creato correttamente.
keytool -list -v -keystore
clientkeystore.jks
Inserire la password del keystore quando richiesto.
Il seguente esempio di codice mostra come configurare la SSL connessione utilizzandoJDBC.
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 } }
Nota
Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.