2017-04-21 96 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