数字证书是否可能在其到期日期之前过期?



我们与外部站点的安全SMTP连接在4月22日开始失败。错误消息指出证书链中的某个地方有问题。

[java:java:ERR /1:to_RHIO_direct_0:--/--/---- --:--:--] org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not convert socket to TLS;
[java:java:ERR /1:to_RHIO_direct_0:--/--/---- --:--:--]   nested exception is:
[java:java:ERR /1:to_RHIO_direct_0:--/--/---- --:--:--]      javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: PKIX path building failed: com.ibm.security.cert.IBMCertPathBuilderException: unable to find valid certification path to requested target. Failed messages: javax.mail.MessagingException: Could not convert socket to TLS;

我们先建立连接,然后发出Start TLS。这台机器已经正常工作两年多了。两年前,也许是27个月前,我们遇到了类似的问题——日志中出现了同样的异常。我没有保留这个问题的记录,但我记得数字证书的有效期是未来一周——也就是说,在由于到期而出现任何问题之前,它应该已经工作了一周多。所以上次我们得到了一个新的证书,问题就解决了。所以这次,我观察到了同样的情况。该证书的有效期为2022年4月29日:

Keystore type: jks
Keystore provider: IBMJCE
Your keystore contains 2 entries
Alias name: (identifying information removed)
Creation date: Mar 13, 2020
Entry type: trustedCertEntry
Owner: (identifying information removed)
Issuer: CN=DigiCert SHA2 Secure Server CA, O=DigiCert Inc, C=US
Serial number: (identifying information removed)
Valid from: 2/27/20 7:00 PM until: 4/29/22 8:00 AM

所以有人可能会说,这只是一个巧合,证书在一周内仍然有效,问题一定来自其他地方。昨天,供应商给我发送了同一证书的更新版本,当我将其添加到信任库时,连接成功建立。因此,我所做的唯一更改就是替换证书。可能是链中更高层的CA出了问题?我收到的证书引用了链中更高端的CA的新版本吗?这就是我所能想到的。但很奇怪的是,同样的情况发生了两次,两次的解决方案都是更换尚未过期的证书。还有别的解释吗?谢谢你

可能在链中较高的CA存在问题?我收到的证书引用了链中更高端的CA的新版本吗?

是的可能。通常不是"证书",而是"证书"。您所展示的只是链中的最后一个证书。如果该链中的任何一个证书在4/22/22过期,那么您就得到了答案。

或者,当然也有可能你的服务器时钟严重偏离(偏离7天)。

最新更新