javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException

时间:2014-04-27 11:15:23

标签: java ssl webservice-client

以前,我可以成功地向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 个答案:

答案 0 :(得分:7)

问题是您正在尝试与SSL证书已过期的服务器通信。您获得异常的原因是因为Java SSL代码正在检查证书链,并且已经注意到了该问题。已过期的SSL证书不可靠......并且不受默认证书验证程序的信任。

  

我无法更新证书......

续订证书取决于网站所有者。如果那不是你,那么你无能为力......除了绕过证书的验证,这对SSL连接安全性有害。