Liberty での SSL 通信の使用可能化
Liberty で SSL 通信を使用可能にするために、最小限の SSL 構成オプションのセットが用意されています。このセットでほとんどの SSL オプションの役割を担当し、一部の鍵ストア構成情報を必要とします。
このタスクについて
SSL クライアント認証が行われるのは、SSL 証明書を使用した接続ハンドシェーク中です。SSL ハンドシェークとは、接続固有の保護を求めてネゴシエーションするために、SSL プロトコルを介して交換される一連のメッセージです。ハンドシェーク中、セキュア・サーバーは、 認証用の証明書または証明書チェーンを返送するようにクライアントに要求します。Liberty で SSL を使用可能にするには、認証用の鍵ストア情報のコードと共に、ssl-1.0 Liberty フィーチャーを構成ルート文書ファイル server.xml に追加します。
デフォルトで、構成ルート文書ファイルのパスとファイル名は path_to_liberty/wlp/usr/servers/server_name/server.xml です。 path_to_liberty は、Liberty をインストールしたオペレーティング・システム上のロケーションで、server_name はサーバーの名前です。ただし、このパスは変更できます。Liberty 環境のカスタマイズを参照してください。
手順
- server.xml ファイルで ssl-1.0 Liberty フィーチャーを使用可能にします。
<featureManager> <feature>ssl-1.0</feature> </featureManager>
注: アプリケーション・セキュリティーが必要で、セキュリティー情報がセキュア・ポートにリダイレクトされる場合、 appSecurity-2.0 Liberty フィーチャーを server.xml ファイルに追加する必要があります。ssl-1.0 フィーチャーが使用可能になっているとき、Liberty サーバーはデフォルトの SSL 構成から SSLContext を作成し、SSLContext.setDefault() Java API を呼び出すことでその SSLContext をサーバーのデフォルトにします。これにより、Liberty サーバーのデフォルト SSLContext がプロセスのデフォルト SSLContext になります。JAVA API 呼び出し SSLContext.getDefault() が実行されると、そのメソッドは Liberty SSLContext を返します。同じことが SSLSocketFactory.getDefault() JAVA API にも適用され、デフォルト SSLContext からのデフォルト・ソケット・ファクトリーが返されます。
あるいは、transportSecurity-1.0 Liberty フィーチャーを server.xml ファイルに追加することで、SSL 通信を使用可能にすることもできます。
<featureManager> <feature>transportSecurity-1.0</feature> </featureManager>
transportSecurity-1.0 フィーチャーは ssl-1.0 フィーチャーを置き換え、ssl-1.0 フィーチャーに含まれていない機能を追加します。アウトバウンド・デフォルトとして使用する SSL 構成、および SSL 構成に対するセットアップ・フィルターを指定することで、アウトバウンド SSL 呼び出しに対し、宛先ホストと宛先ポートに基づいてその SSL 構成が使用されるように設定することができます。アウトバウンド SSL オプションの詳細については、アウトバウンド通信の SSL 設定の構成およびSSL 構成のアウトバウンド・フィルターを参照してください。
transportSecurity-1.0 フィーチャーが使用可能になっているとき、Liberty サーバーは、Java セキュリティー・プロパティー ssl.SocketFactory.provider を使用するカスタム SSL ソケット・ファクトリーを設定します。このセキュリティー・プロパティーは、transportSecurity-1.0 フィーチャーが使用可能になっているとき、自動的に設定されます。 transportSecurity-1.0 フィーチャーを使用するとき、プロセス・デフォルト SSLContext が Java Secure Socket Extension (JSSE) のデフォルト SSLContext です。SSLContext.getDefault() の呼び出しは、JSSE のデフォルト・コンテキスト SSLContext を返します。SSLSocketFactory.getDefault() の呼び出しは、Liberty SSLContext を使用する Liberty サーバーのカスタム・ソケット・ファクトリー・プロバイダーに基づいた SSLSocketFactory を返します。
outboundSSLRef 属性と outboundConnection エレメントは、transportSecurity-1.0 フィーチャーが指定されている場合のみ、アウトバウンド SSL 接続に使用されます。ssl-1.0 フィーチャーが指定されていて transportSecurity-1.0 フィーチャーは指定されていない場合、outboundSSLRef 属性と outboundConnection エレメントは無視されます。
注: JDK の性質上、ssl-1.0 フィーチャーから transportSecurity-1.0 フィーチャーに変更する場合、または transportSecurity-1.0 フィーチャーから ssl-1.0 フィーチャーに変更する場合、そのフィーチャーの完全な機能を使用するには、Liberty サーバーを再始動する必要があります。- 鍵ストア・サービス・オブジェクト・エントリーを server.xml ファイルに追加します。keyStore エレメントは defaultKeyStore と呼ばれ、鍵ストア・パスワードを含んでいます。パスワードは、平文で入力することも、エンコードすることもできます。securityUtility
encode オプションを使用して、パスワードをエンコードすることができます。
最小構成の SAF 鍵リングの例:<keyStore id="defaultKeyStore" password="yourPassword" />
<keyStore id="defaultKeyStore" location="safkeyring:///WASKeyring" type="JCERACFKS" password="password" fileBased="false" readOnly="true" />
RACF® 鍵リングは、Liberty サーバーで使用するために構成する前に、セットアップする必要があります。サーバーでは、証明書の作成および RACF への追加は行いません。
最低限の SSL 構成用の単一の鍵ストア・エントリーを、ロケーションおよびタイプも含むように拡張することができます。<keyStore id="defaultKeyStore" location="myKeyStore.p12" password="yourPassword" type="PKCS12"/>
この構成は、SSL 構成の作成に必要な最小限の構成です。この構成で、鍵ストアと証明書が存在しない場合、サーバーは SSL の初期化中にそれらを作成します。指定するパスワードの長さは 6 文字以上でなければなりません。鍵ストアは、key.jks という名前の JKS 鍵ストアで、サーバーの home/resources/security ディレクトリーに含まれていると想定されます。このファイルが存在しない場合、サーバーによって自動的に作成されます。サーバーによって鍵ストア・ファイルが作成されると、その中の証明書も作成されます。この証明書は自己署名証明書で、有効期間は 365 日です。証明書の subjectDN の CN 値は、サーバーが稼働しているマシンのホスト名で、SHA256withRSA の署名アルゴリズムを持っています。
注: 集合コントローラーの使用が実際的でない場合 (1 つまたは 2 つのみの Liberty サーバーしかない場合など)、自己署名証明書を使用して、Liberty メンバー・サーバーに接続できるクライアントの数を制限できます。推奨されるのは、Liberty サーバー群の前面で 1 つの IHS サーバーを使用することであり、そこで、適切な CA で署名された証明書を、どのクライアントが HIS に接続できるのかを制御する CN ホワイトリスティングと共に使用できます。IHS と Liberty メンバー・サーバーとの間の信頼できるチャネルは、自己署名証明書を使用して保守できます。
サブトピック
- SSL 構成の属性
SSL 構成には、Liberty のサーバー SSL トランスポート層の動作を制御するために使用する属性が含まれています。このトピックでは、SSL 構成に使用できるすべての設定について記述します。 - 鍵ストア
Liberty は、Java™ 鍵ストア (JKS) の鍵ストア・タイプのみを作成できます。Liberty での他のタイプの鍵ストアのサポートは、基礎の Java ランタイム環境 (JRE) で何がサポートされているかに依存します。 - Liberty 用の IBM JCE Hybrid Provider の使用可能化
IBM® JCE ハイブリッド・プロバイダー IBMJCEHYBRID は、暗号化ハードウェアや暗号化プロセッサーが使用可能な場合にはそれらを使用し、それらが使用可能でない場合にはそのような暗号化フィーチャーを使用せずに処理を続行するように設計されているアプリケーションで使用するためのものです。IBMJCEHYBRID プロバイダーを使用すると、アプリケーションは、暗号化フィーチャーが使用可能でない場合に、そのための複雑なエラー処理を組み込まなくとも JCE プロバイダーを利用できるようになります。 - Liberty での SSL のデフォルト
Liberty におけるデフォルトの SSL 証明書、鍵ストア、構成を指定します。 アウトバウンド通信の SSL 設定の構成
Liberty でのアウトバウンド通信の SSL 設定を構成できます。SSL 構成のアウトバウンド・フィルター
アウトバウンド SSL フィルターを使用することで、ホストまたはホストおよびポートへのアウトバウンド接続に複数の SSL 構成が使用されるよう、Liberty を構成することができます。

ファイル名: twlp_sec_ssl.html