我在创建 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/