SSLVerbindung einrichten über JDBC - Amazon Relational Database Service

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. Referenzinformationen finden Sie unter keytool in der Java Platform, Standard Edition Tools Reference.

keytool -genkey -alias client -validity 365 -keyalg RSA -keystore clientkeystore

Gehen Sie wie folgt vor, um dem RDS Amazon-Root-CA-Zertifikat zu vertrauen.

Um dem RDS Amazon-Root-CA-Zertifikat zu vertrauen
  1. 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 .

  2. Extrahieren Sie jedes Zertifikat in der PEM-Datei mithilfe eines Betriebssystemdienstprogramms in eine separate Datei.

  3. Konvertieren Sie jedes Zertifikat mithilfe eines separaten openssl Befehls in das.der-Format und ersetzen Sie dabei certificate-pem-file mit dem Namen der Zertifikats-.pem-Datei (ohne die Erweiterung.pem).

    openssl x509 -outform der -in certificate-pem-file.pem -out certificate-pem-file.der
  4. Importieren Sie jedes Zertifikat mit dem folgenden Befehl in den Keystore.

    keytool -import -alias rds-root -keystore clientkeystore.jks -file certificate-pem-file.der

    Weitere Informationen finden Sie unter Rotieren Ihrer SSL/TLS-Zertifikate.

  5. 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.