Ich mache gerade eine Verbindung zu meiner Datenbank, ohne SSL zu verwenden. Ich möchte jetzt SSL nutzen. So wie ich es eingerichtet habe, ist meine Datenbankquelle in Config.Java verwendet SSL für Datenbankverbindung
DB_SOURCE=jdbc:mysql://myDatabaseInfo:3306/DB_NAME?
DB_USER=dbUser
DB_PW=dbPw
Ich kann die SSL-Verbindung erhalten, indem Aufruf mein Programm mit den folgenden Argumenten zu arbeiten
-Djavax.net.ssl.trustStore=path\to\truststore
-Djavax.net.ssl.trustStorePassword=myPassword
ich es auch durch Änderung der env Variablen im Code selbst
dbSource += "?useSSL=true";
System.setProperty("javax.net.ssl.trustStore", "path\to\truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "myPassword");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(dbSource, dbUser, dbPw);
arbeiten kann
Mein Ziel ist es jedoch, die SSL-Verbindung ohne Änderungen an meinem Code und ohne die VM-Argumente, die ich verwende, zu ändern. Gibt es eine Möglichkeit, meine Quelle so einzustellen, dass sie diese Informationen enthält?
Etwas wie:
jdbc:mysql://myDatabaseInfo:3306/DB_NAME?useSSL=true&trustCertificateKeyStoreUrl=path\to\truststore&trustCertificateKeyStorePassword=myPassword
habe ich versucht, das genau und es funktioniert nicht, im Idealfall konnte ich nur hinzufügen, die Informationen zu dem Config Ich habe schon so, dass ich, um Änderungen vorzunehmen nicht mehr als ein Ort. Irgendwelche Ideen?
In Bezug auf # 1, die nur den Speicherort des Trust Store abdeckt, würde ich immer noch das VM-Argument benötigen, um das Passwort zu setzen, nein? – Marianna
Wenn Sie die Zertifikate in den standardmäßigen Trust Store von Java importieren, müssen Sie das Kennwort nicht festlegen. Es ist "changeit" :) – Tarlog