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 環境のカスタマイズを参照してください。

手順

  1. 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 からのデフォルト・ソケット・ファクトリーが返されます。

  2. [17.0.0.3 and later]あるいは、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 サーバーを再始動する必要があります。
  3. 鍵ストア・サービス・オブジェクト・エントリーを server.xml ファイルに追加します。keyStore エレメントは defaultKeyStore と呼ばれ、鍵ストア・パスワードを含んでいます。パスワードは、平文で入力することも、エンコードすることもできます。securityUtility encode オプションを使用して、パスワードをエンコードすることができます。
    <keyStore id="defaultKeyStore" password="yourPassword" />
    最小構成の SAF 鍵リングの例:
    <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 メンバー・サーバーとの間の信頼できるチャネルは、自己署名証明書を使用して保守できます。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_sec_ssl.html