我正在尝试使用installCert.java获取服务器ssl证书
在链接下面
https://github.com/escline/InstallCert/blob/master/InstallCert.java
我可以获得某些服务器的服务器证书,但在尝试获取某些服务器证书时,我会收到错误
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException:PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:
我搜索过,但是每个人都说你应该把你的证书文件输入java cacerts,但我使用这个java类来获取证书文件。
我也在socket.startHandshake();
System.out.println("Opening connection to " + host + ":" + port + "...");
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
socket.setSoTimeout(10000);
try {
System.out.println("Starting SSL handshake...");
socket.startHandshake();
socket.close();
System.out.println();
System.out.println("No errors, certificate is already trusted");
} catch (SSLException e) {
答案 0 :(得分:0)
该错误表示您的JVM不信任服务器证书
sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException
您需要在JVM的信任库中包含手动 CA根证书,默认情况下为cacerts文件。 CA根是服务器证书的发布者或中间实体(如果存在)的发布者