Javas KeyManagerFactory.init如何使用多个键

时间:2017-01-20 14:04:46

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

1 个答案:

答案 0 :(得分:2)

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