自定义信任存储,其中 cacert 作为不在自定义信任库中的密钥的回退

2022-09-04 04:24:05

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

应用程序使用自定义信任库:

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

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

问题是 cacerts 携带了如此多的标准证书,而我们尚未将其导入 CATrust.jks。因此,我们会收到 SSL 错误,因为通过命令行属性提供的自定义 CATrust.jks 是独占的,而不是累加的(除了 cacerts 证书之外)。

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

到目前为止,与最初的阅读和其他帖子相比,该信息仅涉及所有CA证书所在的单个trustStore。


答案 1

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

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

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


答案 2