jdbc:mysql://localhost:3306/MyDb?verifyServerCertificate=true&useSSL=true&requireSSL=true
我从mySql服务器下载了公共证书并将其放入如下的cacerts:
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 \ tools \ java \ jdk1.8.0_131 \ jre \ lib \ security \ cacerts
trustStore类型是:jks
[.....]
keyStore是:C:/dev/.secure/haa2xt.jks
keyStore类型是:jks
keyStore提供者是:
init keystore
类型为SunX509的init keymanager
***找到了关键:adam
我做错了什么?
答案 0 :(得分:0)
事实证明,keytool import
命令只会在有多个证书时导入PEM文件中的第一个证书。
这是我唯一检查的那个,所以我认为实际上大约有15个我仍然没有进口。但
我使用此工具将它们全部导入:https://github.com/use-sparingly/keyutil