使用dks KeyStore类型配置多个Java密钥库时出错

时间:2015-07-23 15:44:40

标签: java ssl java-8 keytool

我有一个使用标准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个密钥库中合并的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

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