SSL握手异常:sun.security.validator.ValidatorException

3

以前,我能够成功地发送请求到一个Web服务并接收响应,但现在它返回以下异常。根据其他答案,我需要更新证书,但我需要知道为什么现在会收到这个异常。另一个问题是,我可以找到我的java_home地址,但我无法更新证书。

异常:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed

代码

URI uri = new URI("https", "xml.example.com", "/service/ServiceRequest.do", 
                           "serverName=www.example.com&xml=" 
                           ...
                           +" ", null);

            URL page = uri.toURL();
            HttpsURLConnection conn = (HttpsURLConnection) page.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.connect();
1个回答

8
问题是您试图与 SSL 证书已过期的服务器进行通信。您之所以出现异常,是因为 Java SSL 代码正在检查证书链,并注意到了问题。过期的 SSL 证书不可信...默认的证书验证器也不信任它。
我无法更新证书...
更新证书取决于网站所有者。如果不是您,那么除了绕过证书验证(这对 SSL 连接安全性很不好)外,您无能为力。

好的,谢谢。我以此为基础:https://dev59.com/s2kw5IYBdhLWcg3w1d8m 我原以为是自己出了问题。 - J888
那个问答是在解决不同的SSL问题。该服务器提供的证书可能是有效的,但是服务器没有同时提供根和中间证书(或者它们的顺序不正确)。结果是客户端无法检查证书是否有效。在这种情况下的解决方案与您的情况不同,尽管其中一个解决方案涉及服务器管理员修复其服务器以正确运行。 - Stephen C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接