SSL 構成の属性
SSL 構成には、Liberty プロファイルのサーバー SSL トランスポート層の動作を制御するために使用する属性が含まれています。このトピックでは、SSL 構成に使用できるすべての設定について記述します。
SSL のフィーチャー
サーバーで SSL を有効にするには、 SSL のフィーチャーを server.xml ファイルに含める必要があります。
<featureManager>
<feature>ssl-1.0</feature>
</featureManager>
SSL のデフォルト
複数の SSL 構成を構成することができます。 SSL を複数構成した場合は、server.xml ファイルでデフォルトの SSL 構成 (sslDefault サービス構成を使用) を指定してください。
属性 | 説明 | デフォルト値 |
---|---|---|
sslRef | sslRef 属性では、デフォルトとして使用する SSL 構成の名前を指定します。 | デフォルトの SSL 構成名は defaultSSLConfig です。 |
<sslDefault sslRef="mySSLSettings" />
SSL 構成
SSL 構成属性を使用して、SSL 環境をニーズに合わせてカスタマイズします。 これらの属性は、server.xml ファイルの 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_TLS です。 |
securityLevel | securityLevel 属性は、SSL ハンドシェークで使用される暗号スイート・グループを決定します。
この属性には次の値のいずれかを指定できます。
|
デフォルト値は 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 から取得されます。
<!-- 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 ファイル内の鍵ストア・サービス構成で設定可能です。
属性 | 説明 | デフォルト値 |
---|---|---|
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 | サーバーが鍵ストア・ファイルを再ロードするようにトリガーするために使用する方法。鍵ストア・ファイルで変更がないかの検査をサーバーで有効にする場合は polled、mbean が鍵ストア・ファイルを再ロードするまでサーバーで待機できるようにする場合は mbean、ファイルのモニターを無効にする場合は disabled を指定します。 | disabled。 |
updateTrigger 属性が polled または mbean に設定されている場合、サーバーが鍵ストア・ファイルを再ロードできます。polled が有効になっている場合、サーバーは、pollingRate 属性で設定されている間隔に基づいて、鍵ストア・ファイルで変更がないかをモニターします。updateTrigger 属性が mbean に設定されている場合、サーバーは、WebSphere:service=com.ibm.ws.kernel.filemonitor.FileNotificationMBean MBean から通知を受信したときに鍵ストア・ファイルを再ロードします。 デフォルトでは、ファイルのモニターは無効になっています。
<!-- 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 構成の例
- defaultSSLSettings
- mySSLSettings
<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=" />