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.
SSLVerbindung einrichten über JDBC
Um eine SSL Verbindung über zu verwendenJDBC, müssen Sie einen Keystore erstellen, dem RDS Amazon-Root-CA-Zertifikat vertrauen und den unten angegebenen Codeausschnitt verwenden.
Um den Keystore im JKS Format zu erstellen, können Sie den folgenden Befehl verwenden. Weitere Informationen zum Erstellen des Keystores finden Sie unter Keystore erstellen in der Oracle-Dokumentation
keytool -genkey -alias
client
-validity365
-keyalgRSA
-keystoreclientkeystore
Gehen Sie wie folgt vor, um dem RDS Amazon-Root-CA-Zertifikat zu vertrauen.
Um dem RDS Amazon-Root-CA-Zertifikat zu vertrauen
-
Laden Sie die .pem-Datei für das Zertifikatspaket herunter, die für alle funktioniert, AWS-Regionen 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 Sie dabeicertificate-pem-file
mit dem Namen der Zertifikats-.pem-Datei (ohne die Erweiterung.pem).openssl x509 -outform der -in
certificate-pem-file
.pem -outcertificate-pem-file
.der -
Importieren Sie jedes Zertifikat mit dem folgenden Befehl in den Keystore.
keytool -import -alias rds-root -keystore
clientkeystore.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 -keystore
clientkeystore.jks
Geben Sie das Passwort des Schlüsselspeichers an, wenn Sie dazu aufgefordert werden.
Das folgende Codebeispiel zeigt, wie Sie die SSL Verbindung mit einrichten. 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 } }
Anmerkung
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.