配置Tomcat以检查CRL分发点

时间:2012-10-09 11:22:41

标签: tomcat ssl openssl ssl-certificate client-certificates

我正在编写一个webapp,它要求传入连接使用客户端证书来提高安全性。我已将其设置为仅接受安全连接,并使用clientAuth = true。

我一直在尝试检查它是否拒绝已撤销的证书,但它似乎没有检查CRL。这是我第一次真正尝试使用CRL,所以我可能/可能做错了......

测试设置:

  1. 在openssl中创建了已添加到信任库的测试CA. 对于服务器
  2. 为CA创建了CRL,并将配置设置添加到openssl以在客户端证书中包含crl分发点(使用 Howto create a certificate using openssl including a CRL distribution point?
  3. 使用CA
  4. 创建了两个客户端证书
  5. 撤销了其中一个客户端证书,更新了crl并将其放在指定为分发点的地址中(之后检查过 此CRL的内容,它列出了已撤销的证书的ID)
  6. 设置完成后,我尝试使用两个证书连接到应用程序,但是它可以成功连接,即使其中一个被撤销了吗?

    我是否在Tomcat中错过了一个让它在收到客户端证书时检查CRL分发点的设置?我原以为这将是默认行为。

    我发现了各种对设置的引用,这些设置允许你在tomcat中将crl位置嵌入到Connector中 - 这不是我正在寻找的。该系统最终将配置为接受来自许多不同CA的证书。

1 个答案:

答案 0 :(得分:3)

假设您正在使用Oracle / OpenJDK JRE,如果向下滚动Certification Path API guide (Appendix B)的底部,您会发现可以使用com.sun.security.enableCRLDP系统属性启用CRLDP:

  

支持CRL分发点扩展。它是   默认情况下禁用兼容性,可以通过设置启用   系统属性com.sun.security.enableCRLDP为值true

您可能还对以下有关OCSP的部分感兴趣。