Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Einrichten einer SSL-Verbindung über JDBC
Sie müssen einen Schlüsselspeicher erstellen, dem Amazon-RDS-Stammzertifizierungsstellenzertifikat vertrauen und das folgende Code-Snippet verwenden, um eine SSL-Verbindung über JDBC herzustellen.
Führen Sie folgenden Befehl aus, um einen Schlüsselspeicher im JKS-Format zu erstellen. Weitere Informationen zum Erstellen des Schlüsselspeichers finden Sie in der Oracle-Dokumentation unter Erstellen eines Schlüsselspeichers
keytool -genkey -aliasclient-validity365-keyalgRSA-keystoreclientkeystore
Führen Sie die folgenden Schritte aus, um dem Amazon-RDS-Stammzertifizierungsstellenzertifikat zu vertrauen:
So vertrauen Sie dem Amazon-RDS-Stammzertifizierungsstellenzertifikat
-
Laden Sie die .pem-Datei des Zertifikatpakets herunter, das für alle AWS-Regionen funktioniert, und legen Sie die Datei im Verzeichnis „ssl_wallet“ ab.
Informationen zum Herunterladen von Zertifikaten finden Sie unter .
-
Extrahieren Sie jedes Zertifikat in der .pem-Datei mithilfe eines Betriebssystemdienstprogramms in eine separate Datei.
-
Konvertieren Sie jedes Zertifikat mithilfe eines separaten
openssl-Befehls in das .der-Format und ersetzen Siecertificate-pem-filedurch den Namen der .pem-Datei des Zertifikats (ohne die .pem-Erweiterung).openssl x509 -outform der -incertificate-pem-file.pem -outcertificate-pem-file.der -
Importieren Sie jedes Zertifikat mit folgendem Befehl in den Schlüsselspeicher.
keytool -import -alias rds-root -keystoreclientkeystore.jks-filecertificate-pem-file.derWeitere Informationen finden Sie unter Rotieren Ihrer SSL/TLS-Zertifikate.
-
Bestätigen Sie, das der Schlüsselspeicher erfolgreich erstellt wurde.
keytool -list -v -keystoreclientkeystore.jksGeben Sie das Passwort des Schlüsselspeichers an, wenn Sie dazu aufgefordert werden.
Das folgende Code-Beispiel zeigt, wie die SSL-Verbindung mit JDBC eingerichtet wird.
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 } }
Anmerkung
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.