キーストアに複数の証明書とキーをロードできますか?
ペア(つまり、証明書とキーを一緒に)のみをロードすることが常に必要ですか?
キーストアに複数の証明書とキーがある場合、Java SSLがサーバーとして接続を確立しようとすると、どれが選択されますか?
これはキーストアのタイプに依存しますが、一般に、複数の秘密鍵と証明書を単一のストアに保存できます。
Javaベースのサーバーで使用されるキーと証明書の組み合わせは、アプリケーションの実装方法によって異なります。多くのアプリケーションでは、alias名を使用して特定の証明書を選択できます。 KeyStore のキーおよび証明書の取得メソッドは、alias
パラメーターを使用してこの選択を行います。通常、これが構成で指定されていない場合、アプリケーションまたはフレームワークは、KeyStore.aliases()
列挙に基づいて検出した最初の適切なものを使用します。
たとえば、Tomcatは、 コネクタ構成 でkeyAlias
属性を使用します。
keyAlias:キーストア内のサーバー証明書に使用されるエイリアス。指定しない場合、キーストアで読み取られた最初のキーが使用されます。
キーペアに関しては、一部のキーストア(ここでもタイプに応じて)を使用して、共有キーであるSecretKey
s(たとえばDES)と公開/秘密キーペアを格納できます。
必要な数の証明書とキーを持つキーストアを作成できます。
クライアントがトラストストアとして使用するキーストアに複数の証明書がある場合、適合する証明書が見つかるまですべての証明書が調べられます。事前にインストールされた証明書を見ることができます。それらは/ lib/security/cacertsにあります。ルートCAの証明書の単なる大きなコレクションです。
私が知らないキーに関して。クライアントは、サーバーが提供する証明書と同じCAによって署名されたキーを使用し、複数ある場合は最初のものが使用されると考えています。しかし、私は確かにそれを言うことはできません。