0

我正在尝试启用部署在 JBoss 4.2.3 上的 Web 应用程序,以便在客户端计算机上使用 DOD 颁发的 CAC、ActivClient 和 IE 进行客户端证书身份验证。作为概念证明,我能够使用软证书(生成自签名证书,转换为 PKCS12 格式并导入 IE)为 JMX 控制台进行客户端证书身份验证。我还可以使用我的示例(演示)CAC 在线向 TriCare 进行身份验证,大概是演示用户。

但是,我尝试从 CAC 导出证书,并将其导入我的 JKS 信任库,使用 CN 条目作为别名(不确定是否有必要),但它根本不起作用。我在 JBoss 日志中收到一条错误消息,提示“链中的空证书”,并且客户端没有提示选择证书或输入 PIN。我最好的理论是我没有正确的信任库中的证书,所以它不知道从客户端请求什么证书,但我不知道如何确认这种怀疑,或者可能有什么问题。

将 JBoss 与 Apache 放在一起会使这个过程更容易吗?(这是一个内部应用程序,所以我们一直让 JBoss 成为 Web 服务器。)

升级到较旧的 JBoss 版本会有所帮助吗?

是否有我可以在某处启用的调试语句让我更清楚地了解正在发生的事情?

某处是否有分步文档?我如何获得这方面的专业知识?我一直在根据 JBoss 4 在线文档、“JBoss in Action”、“Core Security Patterns”和一些在 SO 中涉及到这个问题的 Q&A 来拼凑我的解决方案。

任何帮助将不胜感激!

4

1 回答 1

0

最好的办法是下载 DoD PKI 的整个 CA 证书链。这将包括根 CA 证书以及所有从属 CA 证书。您应该将所有这些都放在 JBoss 信任库中,从根 CA 证书开始。从那里,如有必要,我将查看 JBoss 文档以获取有关为 JBoss 配置相互验证的 SSL 的更多信息。如果一切都是从 Truststore 的角度设置的,那么对于最基本的情况,这应该是您所需要的。当您通过 Web 浏览器连接时,它应该会提示您选择一个证书进行身份验证。

如果这不起作用,请发布您收到的堆栈跟踪或错误。我去找你看看。

于 2011-06-01T14:33:14.297 回答