首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Keystore.setKeyEntry()中的Certificate[]链是什么意思,以及如何从JKS或PKCS12获取该信息?

Keystore.setKeyEntry()中的Certificate[]链是什么意思,以及如何从JKS或PKCS12获取该信息?
EN

Stack Overflow用户
提问于 2019-06-10 16:42:36
回答 1查看 1.8K关注 0票数 1

我知道什么是证书链。在java中,当使用KeyStore对象时,我们可以向密钥库对象添加证书和私钥。

为此,我们这样做:

        KeyStore sourceKeystore = KeyStore.getInstance("jks");
        try (InputStream stream = new BufferedInputStream(Files.newInputStream(sourceKeystorePath))) {
            sourceKeystore.load(stream, sourceKeystorePassword);
        }

        KeyStore destKeystore = KeyStore.getInstance("jks");
        destKeystore.load(null, destKeystorePassword);

        Enumeration<String> aliasList = sourceKeystore.aliases();
        while (aliasList.hasMoreElements()) {
            String alias = aliasList.nextElement();
            destKeystore.setCertificateEntry(alias, sourceKeystore.getCertificate(alias));
            if(sourceKeystore.isKeyEntry(alias)) {
                System.out.println(alias + " : is private key");
                Key key = sourceKeystore.getKey(alias, "secret".toCharArray());
                Certificate[] chain = new Certificate[1];
                chain[0] = sourceKeystore.getCertificate(alias);
                destKeystore.setKeyEntry(alias, key, "secret".toCharArray(), chain);
            }
        }

        try (OutputStream stream = new BufferedOutputStream(Files.newOutputStream(destKeystorePath))) {
            destKeystore.store(stream, destKeystorePassword);
        }

我想理解的是destKeystore.setKeyEntry()。当我给出一个证书链作为参数时,我能给出一个这样的证书数组吗?

mainCert

  • mainCert,rootCert,英特尔,
  1. rootCert,英特尔,英特尔,interCert,英特尔,英特尔,interCert,英特尔,rootCert
  2. mainCert

第一个问题:这些设置链的不同方式意味着什么?

第二个问题:,如果我有一个JKS文件的话。如何找到证书链的确切值,以及在此KeyStore中为私钥设置证书链的顺序?基本上我的意思是,我想找出在JKS文件中传递给KeyStore.setKeyEntry()的Certificate[]参数是什么

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56523093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档