我目前正在與我的數據庫進行連接而不使用SSL。我現在想要使用SSL。我有它的方式設置,是我的數據庫源配置。Java將SSL用於數據庫連接
DB_SOURCE=jdbc:mysql://myDatabaseInfo:3306/DB_NAME?
DB_USER=dbUser
DB_PW=dbPw
我可以得到SSL連接通過調用我的程序使用以下參數
-Djavax.net.ssl.trustStore=path\to\truststore
-Djavax.net.ssl.trustStorePassword=myPassword
我也可以得到它通過在代碼本身
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);
改變ENV變量工作工作
但是,我的目標是在不改變我的代碼的情況下進行SSL連接,而無需更改我使用的VM參數。有沒有辦法讓我的源代碼包含這些信息?
喜歡的東西:
jdbc:mysql://myDatabaseInfo:3306/DB_NAME?useSSL=true&trustCertificateKeyStoreUrl=path\to\truststore&trustCertificateKeyStorePassword=myPassword
我想這正是它不起作用,最好我可以只添加信息的配置我已經讓我沒有讓更多的變化比一個地方。有任何想法嗎?
關於#1,只包括信任存儲的位置,我仍然需要VM參數來設置密碼,不是嗎? – Marianna
如果將證書導入java的默認信任存儲庫,則不需要設置密碼。這是'changeit':) – Tarlog