考虑Apache Tomcat 7.0
配置为执行客户端认证(连接器的参数clientAuth
设置为true
)。配置Apache Tomcat 7.0以拒绝具有过期客户端证书的连接
看起来,Tomcat信任默认过期的客户端证书,它位于其可信存储区(允许它们成功进行验证)。
是否可以配置Apache Tomcat 7.0
不信任并自动拒绝这些过期的客户端证书,即使它们位于其可信存储中?
看来,这可以通过设置另一个trustManagerClassName
来实现,默认为X509TrustManagerImpl
。但我不知道,默认算法是否真的允许过期的证书?应该使用现有的哪一个?或者我必须实施我自己的并把它放在tomcat
的库里?
UPD:我发现非常类似的问题:Java trustmanager behavior on expired certificates 但答案是没有答案中的任何适当的解决方案。我正在寻找现有的更安全的X509TrustManager
实施,它将检查证书到期。
只是为了确认:您有一个包含过期证书的信任库,并且Tomcat在客户提交证书时仍继续信任该证书?自上次启动Tomcat以来,证书是否过期?您是否能够从信托商店中删除证书以撤消它? –
@ChristopherSchultz 1)是的,2)Tomcat可以在任何时候重新启动,没关系,3)不,我无法从信任存储中删除它。 – Andremoniy
您是否尝试过使用'crlFile'来指定证书撤销列表?我意识到X.509应该可以尊重证书的到期日期,但如果这不符合预期,这是一个选项。 –