我正在编写一个webapp,它要求传入连接使用客户端证书来提高安全性。我已将其设置为仅接受安全连接,并使用clientAuth = true。
我一直在尝试检查它是否拒绝已撤销的证书,但它似乎没有检查CRL。这是我第一次真正尝试使用CRL,所以我可能/可能做错了......
测试设置:
设置完成后,我尝试使用两个证书连接到应用程序,但是它可以成功连接,即使其中一个被撤销了吗?
我是否在Tomcat中错过了一个让它在收到客户端证书时检查CRL分发点的设置?我原以为这将是默认行为。
我发现了各种对设置的引用,这些设置允许你在tomcat中将crl位置嵌入到Connector中 - 这不是我正在寻找的。该系统最终将配置为接受来自许多不同CA的证书。
答案 0 :(得分:3)
假设您正在使用Oracle / OpenJDK JRE,如果向下滚动Certification Path API guide (Appendix B)的底部,您会发现可以使用com.sun.security.enableCRLDP
系统属性启用CRLDP:
支持CRL分发点扩展。它是 默认情况下禁用兼容性,可以通过设置启用 系统属性
com.sun.security.enableCRLDP
为值true
。
您可能还对以下有关OCSP的部分感兴趣。