一台机器上的javax.net.ssl.SSLHandshakeException,但不是另一台机器

时间:2016-05-30 13:03:24

标签: java ssl keystore sslhandshakeexception

我有

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
我已部署应用程序但未在本地计算机上收到此错误的远程计算机上的

异常。

我知道这个错误是关于SSL证书的到期。我已下载证书所有者的新证书,将其导入我的远程计算机的密钥库,但仍然出现此错误。

在这种情况下奇怪的是我没有在我的本地计算机上执行导入证书操作。

那么如何验证证书会在一台机器上给出过期日期错误,而不是在另一台机器上呢?

2 个答案:

答案 0 :(得分:1)

最简单的方法是捕获抛出的CertPathValidatorException并使用它的方法getCertPath()来检索CertPath以及导致问题的证书。

您应首先检查两台机器之间的证书是否不同。

如果无法捕获异常,请在调试模式下运行程序并在CertPathValidatorException上添加断点。如果它触发查看包含的证书并手动比较它们。

答案 1 :(得分:0)

您的客户正在检查用于您的ssl连接的所有证书的到期日期,这表明其链中的证书或其中一个证书已过期。也可能是您的计算机(或服务器)上的日期也是错误的,因此证明该证书看起来不会过期。

http://community.hpe.com/t5/Service-Manager-Service-Center/Urgent-Help-ValidatorException-PKIX-path-validation-failed-java/td-p/5937029

检查ssl链的任何证书是否真的过期。