java - 将一个证书存储到我的 Java keystore 后出现多个条目

标签 java certificate keystore vcenter

我正在使用类 InstallCert将 VMware vCenter 证书导入到我的本地 Java keystore 中。

socket.startHandshake() 行返回 UnsupportedOperationException,但类 SavingTrustManager 仍然已成功下载证书。

然后,我使用以下代码片段将下载的证书存储到本地 keystore 中。

KeyStore jsk;
... ... ..
jks.setCertificateEntry(alias, cert);
OutputStream out = new FileOutputStream("jssecacert");
jks.store(out, passphrase);
out.close();

但是当我尝试列出 keystore 中的所有条目时:keytool -list -keystore jssecacerts -v,它显示有 160 个条目,包括我下载的条目。

我非常确定 keystore 是由我的代码生成的,并且它最初应该是空的。我想知道其他 159 个条目来自哪里?

谢谢。

最佳答案

使用 KeyStoreExplorer 来比较两个信任库:Installcert 类生成的 jssecacerts 以及位于 Java>jre>security>lib 中的 cacerts 文件。

Istallcert 从服务器获取证书并创建您正在使用的 JVM 的信任库的副本。然后它将证书添加到您的信任库的副本中,并将其命名为“jssecacerts”。检查这段代码:

文件 file = new File("jssecacerts");
    if (file.isFile() == false) {
        char SEP = File.separatorChar;
        文件目录 = new File(System.getProperty("java.home") + SEP
        +“lib”+SEP+“安全”);
        文件=新文件(目录,“jssecacerts”);
        if (file.isFile() == false) {
            文件=新文件(目录,“cacerts”);

            }
    }

然后您只需将 jsscacerts 重命名为 cacerts 并替换 JVM 上的原始证书

关于java - 将一个证书存储到我的 Java keystore 后出现多个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036327/

相关文章:

installation - 使用WiX在Windows的用户存储中安装pfx证书

java - 使用新的代码签名证书更新 java keystore 别名

java - 如何在枚举中定义通用成员变量?

java - 多级列表过滤java 8

java - 如何使用 Mule ESB 过滤出站路由?

SSL 认证链不适用于自签名证书

java - Eclipse OSGi SystemBundleActivator 与 BundleActivator

ssl - 如何忽略服务器上的 TLS 证书

java - JMXConnector 无法连接到 ssl keystore

java - 私钥算法与最终实体证书中的公钥算法不匹配(索引 0)