Javas KeyManagerFactory.init 如何使用多个键

How does Javas KeyManagerFactory.init work with multiple keys

我在创建 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(别名:one,pwd:foo)和 cert2(别名:two,pwd:bar),您将如何重写代码?也许我误解了一两件事:)

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