以前,我可以成功地向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();
答案 0 :(得分:7)
问题是您正在尝试与SSL证书已过期的服务器通信。您获得异常的原因是因为Java SSL代码正在检查证书链,并且已经注意到了该问题。已过期的SSL证书不可靠......并且不受默认证书验证程序的信任。
我无法更新证书......
续订证书取决于网站所有者。如果那不是你,那么你无能为力......除了绕过证书的验证,这对SSL连接安全性有害。