java - Javas KeyManagerFactory.init 如何处理多个 key

标签 java keystore

我在创建 SSLContext 的过程中发现了这个 Java 片段。我想知道 init 调用,其中指定了 keyPass 。如果 KeyStore 包含多个具有不同别名和不同密码的证书怎么办?

val keyStore = KeyStore.getInstance("jks")
keyStore.load(inputStream, "storePass")

val keyManagerFactory = KeyManagerFactory.getInstance("SunX509")
keyManagerFactory.init(keyStore, keyPass?)

val keyManagers = keyManagerFactory.getKeyManagers

val sslContext = SSLContext.getInstance("TLS")
sslContext.init(keyManagers, null, new SecureRandom)

如果 keyStore 包含 cert1(别名:一,pwd:foo)和 cert2(别名:二,pwd:bar),您将如何重写代码?也许我误解了一两件事:)

最佳答案

仔细检查文档并进行一些谷歌搜索后,似乎维护多个 keystore 并将它们包装在定制的复合 key 管理器中可以工作,as the author of this blog post is doing .

关于java - Javas KeyManagerFactory.init 如何处理多个 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41765507/

相关文章:

java - jparepository 错误创建 entitymanagerfactory

java - 发送邮件时未找到受信任的证书,但该证书似乎在 keystore 中

java - 从泛型类派生的类没有获得正确的类型

java - 按照拍摄图像的顺序从图库加载图像?

java - 这两种单例实现有什么区别呢?

java - keystore 密码应该与 PKCS12 证书密码相同吗?

java - 如何在 Java 客户端中存储服务器密码以供以后重新连接?

java - 如何设置 Apache Wink 客户端 keystore 和信任库

java - 在连接之前,我如何告诉 SSLSocket 所需的 key 输入的别名?

java - 是否可以同时创建两个实例?