我有一个使用标准JDK SSL API的Java / tomcat基本应用程序。
为了简化密钥库管理,我希望合并2个信任密钥库文件。一种来自Oracle JDK($ JAVA_HOME / lib / security / cacerts),另一种特定于我公司。
在Java 8中,可以通过使用DKS密钥库类型来使用多个密钥库。

我为ssl-keystore-test.dks配置了以下内容:

domain app1 {
     keystore app1-truststore
         keystoreType="JKS"
         keystoreURI="file:///opt/myapp/testkeystore.jks";

     keystore system-truststore
         keystoreURI="${java.home}/lib/security/cacerts";

 };


当我尝试列出密钥库中的证书时,出现以下错误:

# /opt/jdk1.8/jre/bin/keytool -list -keystore ssl-keystore-test.dks -storetype dks -storepass changeit
keytool error: java.lang.UnsupportedOperationException: This keystore must be loaded using a DomainLoadStoreParameter


如果您无权更改应用程序,那么在运行时2密钥库中合并的正确方法是什么?

最佳答案

看起来DKS密钥库类型只能以编程方式使用。我认为您必须手动合并两个密钥库。查看keytool -importkeystore命令,该命令将密钥从一个密钥库复制到另一个。

10-04 19:50