通过 AD Enterprise CA 的 Java 部署规则集

Jul*_*ius 5 certificate java ad-certificate-services

我的目标是在我的组织中建立一个 Java 部署规则集,但是当我们有一个通过 Active Directory 运行的工作 CA 时,我不想向第三方证书颁发机构支付代码签名证书。我遵循了我认为正确的程序来完成这项工作,但是当我最终运行任何 Java 小程序时,我收到以下错误:

无法验证自签名部署规则集 jar

我遵循的步骤是:

  1. 导出我们的根 CA 证书
  2. 将根证书导入 JRE 安装路径中的 cacerts
  3. 将根证书导入个人密钥库
  4. 使用 keytool 为具有个人密钥库的新证书生成 CSR
  5. 使用 certreq 向企业 CA 提交 CSR,使用“代码签名”模板
  6. 将该证书导入个人密钥库
  7. 创建了一个非常基本的部署规则集并将其编译成一个 jar
  8. 使用步骤 6 中个人密钥库中的证书对 jar 进行签名
  9. 将签名的 jar 复制到 \Windows\Sun\Java\Deployment\

上述步骤均已正确完成 - 与无效证书链等无关。我可以在 Java 控制面板中看到根 CA 证书,当我单击控制面板中的部署规则集链接并查看其证书时,我看到了第 6 步中的证书及其父 CA,两者都有未来的到期日期和据我所知的正确信息。但是我在运行任何小程序时仍然收到验证错误

那么 - 是否根本不可能做到这一点,我们必须支付证书费用?或者我(希望)做错了什么?如果有人有任何见解,将不胜感激,谢谢!

Jul*_*ius 2

事实证明,这种情况只发生在 Chrome 和 Firefox 中,而不会发生在 IE 中。我还没有用 Opera 或 Safari 进行过测试。Chrome的证书管理器调出Windows的证书管理器,其中当然已经包含了我们企业CA的证书,并且将该证书添加到Firefox的证书管理器中似乎没有任何效果。不过,部署规则集在 IE 中运行得很好。

我只使用 Chrome,因为我比 IE 更熟悉它的开发工具 - 我们的用户使用 IE,如果您使用 Windows 企业 CA 并使用 Java 和 ActiveX 混合连接到旧的遗留系统,那么您的用户很可能也是如此。我将把这个标记为答案,因为切换到 IE 对我来说很有效,但我希望将来能为其他浏览器找到一些解决方案。