我有一个使用标准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
命令,该命令将密钥从一个密钥库复制到另一个。