web-dev-qa-db-ja.com

キーストアに複数の証明書とキーをロードできますか?

キーストアに複数の証明書とキーをロードできますか?

ペア(つまり、証明書とキーを一緒に)のみをロードすることが常に必要ですか?

キーストアに複数の証明書とキーがある場合、Java SSLがサーバーとして接続を確立しようとすると、どれが選択されますか?

30
Jay

これはキーストアのタイプに依存しますが、一般に、複数の秘密鍵と証明書を単一のストアに保存できます。

Javaベースのサーバーで使用されるキーと証明書の組み合わせは、アプリケーションの実装方法によって異なります。多くのアプリケーションでは、alias名を使用して特定の証明書を選択できます。 KeyStore のキーおよび証明書の取得メソッドは、aliasパラメーターを使用してこの選択を行います。通常、これが構成で指定されていない場合、アプリケーションまたはフレームワークは、KeyStore.aliases()列挙に基づいて検出した最初の適切なものを使用します。

たとえば、Tomcatは、 コネクタ構成keyAlias属性を使用します。

keyAlias:キーストア内のサーバー証明書に使用されるエイリアス。指定しない場合、キーストアで読み取られた最初のキーが使用されます。

キーペアに関しては、一部のキーストア(ここでもタイプに応じて)を使用して、共有キーであるSecretKeys(たとえばDES)と公開/秘密キーペアを格納できます。

17
Bruno

必要な数の証明書とキーを持つキーストアを作成できます。

クライアントがトラストストアとして使用するキーストアに複数の証明書がある場合、適合する証明書が見つかるまですべての証明書が調べられます。事前にインストールされた証明書を見ることができます。それらは/ lib/security/cacertsにあります。ルートCAの証明書の単なる大きなコレクションです。

私が知らないキーに関して。クライアントは、サーバーが提供する証明書と同じCAによって署名されたキーを使用し、複数ある場合は最初のものが使用されると考えています。しかし、私は確かにそれを言うことはできません。

3
musiKk