X.509 証明書 ID の鍵マネージャー制御
Java™ Secure Socket Extension (JSSE) 鍵マネージャーのロールは、Secure Sockets Layer (SSL) ハンドシェーク中にクライアントまたはサーバーの識別に使用する証明書を取り出すことです。
- com.ibm.ssl.keyStoreClientAlias
- 接続のクライアント・サイドの鍵ストアから選択される別名を定義します。 この別名は鍵ストアに存在する必要があります。
- com.ibm.ssl.keyStoreServerAlias
- 接続のサーバー・サイドの鍵ストアから選択される別名を定義します。 この別名は鍵ストアに存在する必要があります。
WebSphere Application Server の場合、指定の SSL 構成について 1 回に 1 つの鍵マネージャーのみを構成できます。 クライアント・サイドでカスタム証明書選択ロジックを使用したい場合は、新規のカスタム鍵マネージャーを作 成する必要があります。 カスタム鍵マネージャーは、ユーザーに動的に証明書を選択させるプロンプトを出す機能を提供できます。 また、拡張インターフェースを実装して、鍵マネージャーが接続中に情報を提供できるようにすること もできます。 拡張インターフェースについて詳しくは、com.ibm.wsspi.ssl.KeyManagerExtendedInfo インターフェースを参照してください。カスタム鍵マネージャーの開発について詳しくは、 SSL 用のカスタム鍵マネージャーの作成を参照してください。
デフォルトの IbmX509 鍵マネージャー
デフォルトの IbmX509 鍵マネージャーは、SSL ハンドシェー クの際に ID として機能する証明書を選択します。 鍵マネージャーは呼び出されて、SSL ハンドシェークの両側でクライアント認証を使用可能にします。クライアントお よびサーバー要件に応じて、サーバー・サイドのことが多く、クライアント・サイドはそれほど多くありません。 鍵ストアがクライアント・サイドに構成されておらず、SSL クライアント認証が使用可能になっている場合は、鍵マネージ ャーはサーバーに送信する証明書を選択することができません。 このため、ハンドシェークは失敗します。
<keyManagers xmi:id="KeyManager_1" name="IbmX509"
provider="IBMJSSE2" algorithm="IbmX509" keyManagerClass=""
managementScope="ManagementScope_1"/>
鍵マネージャーは IBMJSSE2 プロバイダーによって提供されるため、keyManagerClass クラスは指定しません。ただし、鍵マネージャーがカスタム・クラス実装である (その場合は、keyManager クラスを指定する必要あり) か、WebSphere Application Server が Java セキュリティー・プロバイダー・フレームワークから開始できるアルゴリズム名であるかを指定できます。カスタム鍵マネージャー
次のサンプル・コードでは、カスタム・クラスの security.xml フ ァイルにおける鍵マネージャー構成を示しています。<keyManagers xmi:id="KeyManager_2" name="CustomKeyManager"
keyManagerClass="com.ibm.ws.ssl.core.CustomKeyManager"
managementScope="ManagementScope_1"/>
追加の WebSphere Application Server 情報を取り出すには、
カスタム・クラスが javax.net.ssl.X509KeyManager インターフェースを実装する必要があります。また、オプションで com.ibm.wsspi.ssl.KeyManagerExtendedInfo インターフェースを実装できます。1 回に 1 つの鍵マネージャーしか構成できないため、このインターフェースはデフォルトの鍵マネージャーの機能
を置き換えます。
このため、カスタム鍵マネージャーだけが、使用する別名の構成済み鍵ストアからの選択を担当します。
カスタム鍵マネージャーの利点は、クライアント・サイドにおいて、別名を求めるプロンプトを出す機能にあります。
このプロセスにより、ユーザーは、
クライアント証明書 ID を把握した状態で、
どの証明書を使用するかを決定できます。
詳しくは、SSL 用のカスタム鍵マネージャーの作成を参照してください。