2017-04-21 67 views
0
jdbc:mysql://localhost:3306/MyDb?verifyServerCertificate=true&useSSL=true&requireSSL=true 

我從網上下載MySQL服務器的公證書,並把它變成像這樣的cacerts:如何建立與SSL的MySQL JDBC連接

keytool.exe -import -alias mysql_dev \ 
    -keystore /c/dev/tools/Java/jre1.8.0_131/jre/lib/security/cacerts \ 
    -file rds-combined-ca-bundle.pem 

我生成使用keytool喜歡這個新的密鑰:

keytool.exe -genkeypair -alias adam \ 
       -keypass changeit \ 
       -keysize 1024 \ 
       -keystore /c/dev/.secure/haa2xt.jks \ 
       -storepass changeit 

所以,現在我可以看到Java正在從密鑰庫和信任庫中獲取服務器證書,但仍然收到PKIX錯誤。

PKIX路徑建設失敗: sun.security.provider.certpath.SunCertPathBuilderException:無法找到

我加入這個調試參數去命令行有效的認證路徑請求的目標,並得到了一些更多的信息看起來不錯,我可以在那裏看到mySql證書。

-Djavax.net.debug=all 

的trustStore是:c:\ dev的\工具\ java中\ jdk1.8.0_131 \ JRE \ lib \ security中\ cacerts中

的trustStore類型是:JKS

[。 ....]

keyStore在:C:/dev/.secure/haa2xt.jks

密鑰倉庫類型是:JKS

密鑰庫提供的是:

初始化密鑰庫類型的

初始化的KeyManager SunX509

***發現鍵:亞當

我有什麼做錯了?

回答

0

事實證明,keytool import命令只會導入PEM文件中的第一個證書,當有多個證書時。

這是我唯一檢查過的,所以我覺得沒問題,實際上有15個我還沒有輸入。

我用這個工具把它們全部導入:https://github.com/use-sparingly/keyutil