我正在尝试编写一个Web服务客户端,以通过SSL使用另一家公司提供的测试服务。我不是'精明的证书',所以我希望这只是一件我能忽视的简单事。我有三个'store':一个信任库,一个用于消息签名的密钥库,以及一个用于传输的密钥库(如webservice hoster提供的doc中所述)。尝试访问该服务时,我收到以下错误:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
并且在堆栈跟踪的底部是:
java.security.cert.CertificateExpiredException: NotAfter: Wed Mar 16 19:59:59 EDT 2011
最后一条消息听起来像是说证书已过期。我已经检查过我在三家商店获得的所有证书,但都没有过期。那么这条消息是否意味着服务器具有过期的证书?或者我有什么配置搞砸?
戴夫
答案 0 :(得分:0)
我通过在代码中添加System.setProperty("javax.net.debug", "all");
来验证问题在于服务器证书。这样我就可以看到正在发送/接收的证书信息。服务器的证书已过期。 >:\