【问题标题】:Configuring Tomcat to accept DOD CAC card certificates配置 Tomcat 以接受 DOD CAC 卡证书
【发布时间】:2011-04-25 03:45:14
【问题描述】:

我正在 Windows 机器上的独立 tomcat 6 服务器上运行应用程序。我希望它能够从 DoD CAC 卡请求和接收客户端证书。

我有一台运行 IE 的客户端计算机,它正确设置以传递来自 CAC 卡的证书,我知道它是正确的,因为当我转到启用 CAC 的站点时,IE 会弹出一个窗口,要求我选择一个证书并在其中窗口我可以看到我的 CAC 卡中的证书。

我已将 tomcat 配置为向用户请求证书,当我导航到在 tomcat 上运行的站点时,我看到相同的 IE 提示,要求我选择我的证书,但是当我查看我的站点时,证书列表是空的。在我的 server.xml 文件中,我将连接器配置如下:

<Connector port="8443" 
           protocol="HTTP/1.1" 
           SSLEnabled="true"
           maxThreads="150" 
           scheme="https" 
           secure="true"
           keystoreFile="<myKeysotre>"
           keystorePass="<myPassword>"
           clientAuth="want" 
           sslProtocol="TLS" />

我认为我搞砸的地方是密钥存储文件的生成。现在我使用 java keytool 命令生成它,如下所示:

keytool -genkey -alias -keypass myPassword -keystore myKeystore -storepass myPassword

我现在正在进行开发,我正在寻找一种方法将客户端证书从 CAC 卡获取到我的应用程序,但我缺少一些东西。我对它的工作原理不是很熟悉,所以我可以使用一些帮助/指导。

谢谢

【问题讨论】:

  • 你现在用证书做什么?我假设您想以某种方式将它们转换为用户名?

标签: tomcat ssl certificate cac common-access-card


【解决方案1】:

在这里拉了一点头发后,我发现了。 IE 提示我选择证书的原因是空的,因为客户端证书(CAC 卡上的证书)不是由我的 tomcat 服务器上受信任根目录中的任何 CA 颁发的。

我需要做的是将根 CA 证书添加到我的 tomcat 信任库。我花了一段时间才弄清楚如何获得证书。我所做的是访问http://dodpki.c3pki.chamb.disa.mil/rootca.html 网站并下载根证书(以.cac 文件的形式提供),然后将这些文件导入到IE 中(工具-> 内部网络选项-> 内容-> 证书)。然后,再次从 IE 证书工具中)我将根证书导出为 X509 文件并创建了一个信任库来包含它们:

keytool -storepass somePassword -import -alias DoDClass3RootCA -keystore my.truststore -trustcacerts -file exports\DoDClass3RootCA.cer

创建该存储后,我会更新 server.xml 文件中的 Connector 元素以包含该信任存储:

<Connector port="8443" 
           protocol="HTTP/1.1" 
           SSLEnabled="true"
           maxThreads="150" 
           scheme="https" 
           secure="true"
           truststoreFile="my.truststore"
           truststorePass="somePassword"
           … />

完成此操作并重新启动 tomcat 后,CAC 卡证书出现在我面前

【讨论】:

    猜你喜欢
    • 2019-05-12
    • 1970-01-01
    • 2011-03-14
    • 2014-03-02
    • 2012-04-25
    • 1970-01-01
    • 2010-10-24
    • 2022-06-17
    • 1970-01-01
    相关资源
    最近更新 更多