2017-01-20 3 views
1

SSLContextの作成の一環として、このJavaスニペットを参照しました。 keyPassが指定されているinitコールが不思議です。 KeyStoreに別名とパスワードが異なる複数の証明書が含まれている場合はどうなりますか?Javas KeyManagerFactory.initは複数のキーでどのように動作するのですか

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含まれている場合はどのようにコードを書き換えるでしょう(別名:1、PWD:FOO)とcert2(別名:2、PWD:バー)?たぶん私は何か2つのことを誤解したでしょう:)

答えて

2

ドキュメントをダブルチェックしてグーグルをやっていると、複数のキーストアを保持していて、別名の複合キーマンでラップできているようです。as the author of this blog post is doing

+0

これについてはわかりません。[javadoc](https://docs.oracle.com/javase/7/docs/api/javax/net/ssl/KeyManagerFactory.html#init(java.security.KeyStore、 %20char [])):password - KeyStoreのキーを回復するためのパスワード – GPI

+0

これは2つの異なるパスワードです。 – reikje

+0

私は正しかった、あなたは正しい、私は私の方法をここで交差させた。キーストア#ロードメソッドはストアパスワードを取得し、KMF#initはキーパスワードを取得します。 – JustDanyul

関連する問題