TrustManager PKIX(或 RFC 3280/X.509)是否真的检查客户端证书的到期日期?

信息安全 tls 验证 爪哇 x.509 雄猫
2021-08-16 00:08:43

注意到信任管理器算法 ( )的默认java实现在 SSL 身份验证期间并没有真正检查客户端证书的到期日期。TrustManagerFactoryPKIXX509ExtendedTrustManager

这可以很容易地检查:Apache Tomcat 7.x使用 SSL 客户端身份验证进行配置将过期的客户端证书放入信任库。在客户端将系统时间设置为证书未过期的过去时间。,客户端可以在 Web 服务器上成功进行身份验证。

问题是:这种行为是否正确且适合 RFC 3280,还是一个错误?

1个回答

不,它没有,不,它不是一个错误。对于它的价值,我在 RFC 3280 中没有明确规定路径验证在过期证书上失败。

如果您在信任库 javax.net.ssl 中有证书,则默认 TrustManagers 将信任它,无论是否过期。

JavaDoc 中没有任何内容表明它检查到期。我会说这是设计使然。

我深入研究了 JCL 源代码,它没有尝试检查证书过期。

其他用户遇到并验证了这种行为:https : //stackoverflow.com/a/5206923/154527

您将需要自己的 TrustManager 来执行此操作。