我有一个使用标准JDK SSL API的Java / tomcat基础应用程序。 为了简化密钥库管理,我希望有两个合并的信任密钥库文件。一个来自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个密钥库中合并的正确方法是什么?
答案 0 :(得分:1)
看起来DKS密钥库类型只能以编程方式使用。我想你必须手动合并两个密钥库。查看keytool -importkeystore
命令,该命令将密钥从一个密钥库复制到另一个密钥库。