SSL クライアント認証を使用して、Liberty プロファイルで Web アプリケーションを構成できます。
このタスクについて
クライアント証明書認証は、クライアント・サイドによる証明書の送信がサーバー・サイドから要求される場合に行われます。WebSphere® サーバーは、SSL 構成でのクライアント証明書認証に対応するように構成できます。これを行うには、ssl-1.0 Liberty フィーチャーを server.xml ファイルに追加します。その際、サーバーに認証用の鍵ストア情報を伝えるコードも追加します。
SSL のどの部分がサポートされるかについて詳しくは、『Liberty フィーチャー』を参照してください。
手順
- Web アプリケーションのデプロイメント記述子で、使用する認証メソッドとしてクライアント証明書認証が指定されていることを確認します。
デプロイメント記述子に次のエレメントが含まれていることを確認してください。
<auth-method>CLIENT-CERT</auth-method>
注: デプロイメント記述子を作成するには、Rational® Application Developer などのツールを使用できます。
- オプション: コマンド行を使用して SSL 証明書を生成します。『securityUtility コマンド』を参照してください。
- 以下の行を server.xml ファイルに追加することによって、SSL クライアント認証を使用可能にするようにサーバーを構成します。
<featureManager>
<feature>ssl-1.0</feature>
<featureManager>
<ssl id="defaultSSLConfig" keyStoreRef="defaultKeyStore"
trustStoreRef="defaultTrustStore" clientAuthenticationSupported="true" />
<keyStore id="defaultKeyStore" location="key.jks" type="JKS" password="defaultPWD" />
<keyStore id="defaultTrustStore" location="trust.jks" type="JKS" password="defaultPWD" />
- clientAuthentication="true" と指定した場合、サーバーは、証明書を送信するようクライアントに要求します。ただし、クライアントが証明書を持たない場合、または証明書がサーバーによって信頼されない場合、ハンドシェークは失敗します。
- clientAuthenticationSupported="true" と指定した場合、サーバーは、証明書を送信するようクライアントに要求します。ただし、クライアントが証明書を持たない場合、または証明書がサーバーによって信頼されない場合でも、ハンドシェークが成功する可能性があります。
- clientAuthentication または clientAuthenticationSupported のどちらも指定しない場合、または clientAuthentication="false" または clientAuthenticationSupported="false" を指定した場合、サーバーは、ハンドシェーク中に証明書を送信するようにクライアントに要求しません。
- ご使用のブラウザーにクライアント証明書を追加します。クライアント証明書の追加については、ブラウザーの資料を参照してください。
- サーバーが、使用されているすべてのクライアント証明書を信頼していることを確認します。
- クライアント認証に使用されるどのクライアント証明書も、レジストリー内のユーザー ID にマップされていることを確認します。
- 基本レジストリーの場合、ユーザー ID は証明書の識別名 (DN) の共通名 (CN) です。
- Lightweight Directory Access Protocol (LDAP) レジストリーの場合、クライアント証明書の DN が LDAP レジストリー内に存在していなければなりません。
- クライアント証明書認証が失敗した場合に、ユーザー ID とパスワードのみの基本認証を使用するには、次の行を server.xml ファイルに追加します。
<webAppSecurity allowFailOverToBasicAuth="true" />
注: allowFailOverToBasicAuth="false" を指定したか、または allowFailOvertoBasicAuth を指定しなかった場合に、クライアント証明書認証が失敗すると、要求は「403 Authentication error」メッセージを生成し、クライアントに基本認証のプロンプトは出されません。