Liberty: SSL 構成の属性

SSL 構成には、Liberty のサーバー SSL トランスポート層の動作を制御するために使用する属性が含まれています。このトピックでは、SSL 構成に使用できるすべての設定について記述します。

SSL のフィーチャー

サーバーで SSL を有効にするには、 SSL のフィーチャーを server.xml ファイルに含める必要があります。

<featureManager>
  <feature>ssl-1.0</feature>
</featureManager>

SSL のデフォルト

複数の SSL 構成を構成することができます。 SSL を複数構成した場合は、server.xml ファイルでデフォルトの SSL 構成 (sslDefault サービス構成を使用) を指定してください。

表 1. sslDefault エレメントの属性. sslDefault エレメントの属性について、次の表で説明します。
属性 説明 デフォルト値
sslRef sslRef 属性では、デフォルトとして使用する SSL 構成の名前を指定します。 デフォルトの SSL 構成名は defaultSSLConfig です。
server.xml ファイル内のエントリーは、次のとおりです。
<sslDefault sslRef="mySSLSettings" />

SSL 構成

SSL 構成属性を使用して、SSL 環境をニーズに合わせてカスタマイズします。 これらの属性は、server.xml ファイルの ssl サービス構成エレメントで設定可能です。

表 2. SSL エレメントの属性. ssl エレメントの属性について、次の表で説明します。
属性 説明 デフォルト値
id id 属性は、SSL 構成オブジェクトに固有の名前を割り当てます。 デフォルト値はありません。固有の名前を指定する必要があります。
keyStoreRef keyStoreRef 属性は、SSL 構成の鍵ストアを定義する鍵ストア・サービス・オブジェクトを指定します。 鍵ストアには、SSL 接続を行うために必要な鍵が保管されています。 デフォルト値はありません。鍵ストアの参照を指定する必要があります。
trustStoreRef trustStoreRef 属性は、SSL 構成のトラストストアを定義する鍵ストア・サービス・オブジェクトを指定します。 トラストストアには、署名検証に必要な証明書が保管されます。 trustStoreRef は、オプションの属性です。 参照がない場合は、keyStoreRef で指定された鍵ストアが使用されます。
clientAuthentication clientAuthentication 属性は、SSL クライアント認証が必要かどうかを決定します。 デフォルト値は false です。
clientAuthenticationSupported clientAuthenticationSupported 属性は、SSL クライアント認証がサポートされるかどうかを決定します。 クライアントは、クライアント証明書を提供する必要はありません。 clientAuthentication 属性が true に設定された場合、clientAuthenticationSupported 属性の値は上書きされます。 デフォルト値は false です。
sslProtocol sslProtocol 属性は、SSL ハンドシェーク・プロトコルを定義します。 プロトコルは SDK に依存することがあるため、プロトコルを変更する場合は、稼働している SDK でその値がサポートされることを必ず確認してください。 デフォルト値は、SSL_TLSv2 (IBM® JRE の場合) または SSL (Oracle JRE の場合) です。
securityLevel securityLevel 属性は、SSL ハンドシェークで使用される暗号スイート・グループを決定します。 この属性には次の値のいずれかを指定できます。
  • HIGH (128 ビットの暗号およびそれ以上)
  • MEDIUM (40 ビットの暗号)
  • WEAK (暗号化なしのすべての暗号)
  • CUSTOM (暗号スイート・グループをカスタマイズする場合)
enabledCiphers 属性に固有の暗号リストを設定すると、システムはこの属性を無視します。
デフォルト値は HIGH です。
enabledCiphers enabledCiphers 属性を使用して、暗号スイートの固有リストを指定します。リストでは、スペースで各暗号スイートを区切ります。 enabledCiphers 属性が設定された場合、securityLevel 属性は無視されます。 デフォルト値はありません。
serverKeyAlias serverKeyAlias 属性は、SSL 構成の鍵として使用する、鍵ストア内の鍵を指定します。 鍵ストアに複数の鍵エントリーがある場合にのみ、この属性は必要です。 鍵ストアに複数の鍵エントリーがあって、この属性で鍵を指定しないと、JSSE が鍵を選択します。 デフォルト値はありません。
clientKeyAlias clientKeyAlias 属性は、 clientAuthentication が使用可能になっている場合に、SSL 構成の鍵として使用する、鍵ストア内の鍵を指定します。 鍵ストアに複数の鍵エントリーがある場合にのみ、この属性が必要です。 デフォルト値はありません。
注:
  • 鍵マネージャーは、SSL ハンドシェークが、使用する認証別名を判別するために使用します。 鍵マネージャーは、server.xml ファイルで構成されません。 SDK のセキュリティー・プロパティー ssl.KeyManagerFactory.algorithm から取得されます。
  • トラスト・マネージャーは、トラストの決定を SSL ハンドシェークが行うために使用します。 トラスト・マネージャーは、server.xml ファイルで構成されません。 SDK のセキュリティー・プロパティー ssl.TrustManagerFactory.algorithm から取得されます。
以下に、server.xml ファイルでの ssl エレメントの構成方法の例を示します。
<!--  Simple ssl configuration service object. This assumes there is a keystore object named -->
<!--  defaultKeyStore and a truststore object named defaultTrustStore in the server.xml file. -->
  <ssl id="myDefaultSSLConfig"
       keyStoreRef="defaultKeyStore"
       trustStoreRef="defaultTrustStore" />


<!--  A ssl configuration service object that enabled clientAuthentication -->
<!--  and specifies the TLS protocol be used. -->
  <ssl id="myDefaultSSLConfig"
       keyStoreRef="defaultKeyStore"
       trustStoreRef="defaultTrustStore"
       clientAuthentication="true"
       sslProtocol="TLS" />

<!-- An SSL configuration service object that names the serverKeyAlias -->
<!-- to be used by the handshake. This assumes there is a certificate -->
<!-- called "default" in the keystore defined by keyStoreRef. -->
  <ssl id="myDefaultSSLConfig"
       keyStoreRef="defaultKeyStore"
       serverKeyAlias="default" />

鍵ストア構成

keystore 構成は、鍵ストアのロードに必要な属性から成ります。 これらの属性は、server.xml ファイル内の鍵ストア・サービス構成で設定可能です。

表 3. keystore エレメントの属性. keystore エレメントの属性について、次の表で説明します。
属性 説明 デフォルト値
id id 属性は、鍵ストア・オブジェクトの固有 ID を定義します。 デフォルト値はありません。固有の名前を指定する必要があります。
location location 属性は、鍵ストア・ファイル名を指定します。 値には、ファイルの絶対パスを指定できます。 絶対パスが指定されない場合、コードは ${server.config.dir}/resources/security ディレクトリーでファイルを探します。 SSL 最小構成で、ファイルのロケーションは ${server.config.dir}/resources/security/key.jks と想定されます。
type type 属性は、鍵ストアのタイプを指定します。 指定する鍵ストア・タイプが、稼働している SDK でサポートされることを確認してください。 デフォルト値は jks です。
password password 属性は、鍵ストア・ファイルのロードに使用するパスワードを指定します。パスワードは、平文で、またはエンコードして格納できます。 パスワードのエンコード方法については、 securityUtility encode オプションを参照してください。 指定が必要です。
provider provider 属性は、鍵ストアのロードに使用されるプロバイダーを指定します。鍵ストア・タイプによっては、SDK デフォルト以外のプロバイダーが必要になります。 デフォルトでは、プロバイダーは指定されません。
fileBased fileBased 属性では、鍵ストアがファイル・ベースであるかどうかを指定します。 デフォルト値は true です。
pollingRate 鍵ストア・ファイルの更新があるかどうかをサーバーが検査する間隔。 500ms
updateTrigger サーバーが鍵ストア・ファイルを再ロードするようにトリガーするために使用する方法。鍵ストア・ファイルで変更がないかの検査をサーバーで有効にする場合は polledmbean が鍵ストア・ファイルを再ロードするまでサーバーで待機できるようにする場合は mbean、ファイルのモニターを無効にする場合は disabled を指定します。 disabled

updateTrigger 属性が polled または mbean に設定されている場合、サーバーが鍵ストア・ファイルを再ロードできます。polled が有効になっている場合、サーバーは、pollingRate 属性で設定されている間隔に基づいて、鍵ストア・ファイルで変更がないかをモニターします。updateTrigger 属性が mbean に設定されている場合、サーバーは、WebSphere:service=com.ibm.ws.kernel.filemonitor.FileNotificationMBean MBean から通知を受信したときに鍵ストア・ファイルを再ロードします。 デフォルトでは、ファイルのモニターは無効になっています。

以下に、server.xml ファイルでの keystore エレメントの構成方法の例を示します。
<!-- A keystore object called defaultKeyStore provides a location, -->
<!-- type, and password. The MyKeyStoreFile.jks file is assumed -->
<!-- to be located in ${server.config.dir}/resources/security -->
<!-- This keystore is configured to be monitored every 5 seconds -->
<!-- for updates -->
   <keyStore id="defaultKeyStore"
           location="MyKeyStoreFile.jks"
           type="JKS" password="myPassword" 
           pollingRate="5s" 
           updateTrigger="polled" />

<!-- A keystore object called defaultKeyStore provides a location, -->
<!-- type, and password. The MyKeyStoreFile.jks file is assumed -->
<!-- to be located in ${server.config.dir}/resources/security -->
<!-- This keystore is configured to be reloaded when the server -->
<!-- recieves an mbean notification to do so -->
   <keyStore id="defaultKeyStore"
           location="MyKeyStoreFile.jks"
           type="JKS" password="myPassword" 
           updateTrigger="mbean" />

完全 SSL 構成の例

以下に、server.xml ファイルでの完全 SSL 構成の例を示します。 この例には、次の SSL 構成があります。
  • defaultSSLSettings
  • mySSLSettings
デフォルトで、SSL 構成は defaultSSLConfig に設定されます。
<featureManager>
  <feature>ssl-1.0</feature>
</featureManager>


<!-- default SSL configuration is defaultSSLSettings ->
  <sslDefault sslRef="defaultSSLSettings" />
  <ssl id="defaultSSLSettings"
       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" />

  <ssl id="mySSLSettings" 
       keyStoreRef="myKeyStore" 
       trustStoreRef="myTrustStore" 
       clientAuthentication="true" />
  <keyStore id="LDAPKeyStore" 
            location="${server.config.dir}/myKey.p12" 
            type="PKCS12" 
            password="{xor}CDo9Hgw=" />
  <keyStore id="LDAPTrustStore" 
            location="${server.config.dir}/myTrust.p12" 
            type="PKCS12" 
            password="{xor}CDo9Hgw=" />  

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwlp_ssl
ファイル名: rwlp_ssl.html