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

Is it possible for a digital certificate to expire before its expiry date?

我们与外部站点的安全 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 个月前,我们遇到了类似的问题——日志中出现了同样的异常。我没有保留那个问题的记录,但我记得数字证书的到期日期是未来一周后 - 也就是说,它应该已经工作了一周才能因到期而出现任何问题。所以上次,我们拿到了新的证书,问题就解决了。 所以这一次,我观察到了同样的情况。该证书的到期日期为 4/29/2022:

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? 这就是我能想到的.. 但很奇怪,同样的情况发生了两次,而且两次的解决方案都是更换尚未过期的证书。 还有其他解释吗?谢谢

Possibly there was an issue with a CA higher up in the chain? And the certificate I received referenced a newer version of a CA higher up in the chain?

可能吧。通常 'the certificate' 没有 'the certificate chain' 那么多。您展示的只是链中的最终证书。如果该链中的任何一个证书于 22 年 4 月 22 日过期,那么,您就有了答案。

或者,您的服务器的时钟当然有可能严重关闭(7 天)。