在代码里用这种方式导入证书,
System.setProperty("javax.net.ssl.trustStore", "C:/path/truststore.jks")
遇到了一堆问题,苦不堪言。
最后找到了,直接把证书导入到java环境的方法,所有的报证书找不到的错误都没有了。
步骤如下:
进入jks证书所在目录,打开cmd,输入如下命令,
keytool -exportcert -alias client-truststore -keystore client-truststore.jks -rfc -file client-truststore.pem
会生成一个pem文件,这里需要知道证书的别名alias,以及证书的密码(如果有密码)
把生成的client-truststore.pem复制到java运行环境的 JAVA_HOME/jre/lib/security/ 目录下
然后打开cmd,输入如下命令
keytool -list -keystore cacerts
会要求你输入cacerts的密码,默认为“changeit”,然后你可以看到目前已经注册的证书。
然后使用管理员权限,打开cmd,输入下面的命令
keytool -import -alias client-truststore -file client-truststore.pem -keystore cacerts
这里cacerts的默认密码依然是“changeit”
在执行查看列表的命令,可以发现成功了。