14

有没有办法通过命令行或自定义信任管理器来创建由 cacerts 支持的自定义 trustStore?

该应用程序使用自定义 trustStore:

-Djavax.net.ssl.trustStore=/SSL/CATrust.jks

持有我们自己的信任证书,这是在自定义文件中完成的,以简化 JDK 的升级,而无需迁移 cacerts。

问题是 cacerts 携带了这么多标准证书,我们还没有将它们导入 CATrust.jks。因此,我们收到 SSL 错误,因为通过命令行属性提供的自定义 CATrust.jks 是独占的,而不是附加的(除了 cacerts 证书)。

那么有没有办法提供自定义的信任库,如果在该信任库中找不到证书,服务器/应用程序将回退到尝试在 cacerts(或辅助信任库)中查找证书?

到目前为止,从最初的阅读和其他帖子来看,信息只讨论了所有 CA 证书所在的单个 trustStore。

4

1 回答 1

6

作为部署的一部分,您可以复制默认值cacerts并将您自己的密钥库的内容导入其中(或相反):

cp /path/to/cacerts merged.jks
keytool -importkeystore -srckeystore /SSL/CATrust.jks -destkeystore merged.jks

避免使用相同的别名肯定会更好(检查选项以keytool -importkeystore获取更多详细信息,特别是如果这必须是脚本的一部分)。

于 2012-11-07T02:51:50.017 回答