InstallCert.java接收服务器证书时出现PKIX错误

时间:2017-09-06 12:02:27

标签: java ssl x509certificate

我正在尝试使用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) {

1 个答案:

答案 0 :(得分:0)

该错误表示您的JVM不信任服务器证书

  

sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException

您需要在JVM的信任库中包含手动 CA根证书,默认情况下为cacerts文件。 CA根是服务器证书的发布者或中间实体(如果存在)的发布者