我确实想将自签名证书导入Java,因此任何尝试建立SSL连接的Java应用程序都将信任此证书。
到目前为止,我设法将其导入
keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem
不过,当我尝试运行时HTTPSClient.class
,仍然会得到:
javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到指向所请求目标的有效证书路径
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider())
在第一部分中,完全不需要这样的事情。第二个不做任何证书验证。尝试从平原URLConnection
开始。您确定您已经修改cacerts
了lib/security
JRE安装?您是否尝试过trustmanager
调试选项?