使用cacerts自定义trustStore作为不在自定义trustStore中的键的后备

Jay*_*ton 12 java ssl

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

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

-Djavax.net.ssl.trustStore=/SSL/CATrust.jks
Run Code Online (Sandbox Code Playgroud)

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

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

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

从最初的阅读和其他帖子到目前为止,该信息仅涉及所有CA证书所在的单一trustStore.

Bru*_*uno 6

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

cp /path/to/cacerts merged.jks
keytool -importkeystore -srckeystore /SSL/CATrust.jks -destkeystore merged.jks
Run Code Online (Sandbox Code Playgroud)

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