ssl.client.props ファイルを使用して、クライアントの Secure Sockets Layer (SSL) を構成します。 WebSphere Application Server の前のリリースでは、 SSL プロパティーは、sas.client.props または soap.client.props ファイル内に指定されているか、システム・プロパティーとして指定されていました。 構成を統合することにより、WebSphere Application Server では、サーバー・サイドの構成管理と同じような方法でセキュリティーを管理できます。 ssl.client.props ファイルを複数の SSL 構成を使用して構成できます。
クライアント・ランタイムは、WebSphere Application Server の ssl.client.props 構成に依存します。
-Dcom.ibm.SSL.ConfigURL=file:C:¥WebSphere¥AppServer¥profiles¥default ¥properties¥ssl.client.propscom.ibm.SSL.ConfigURL プロパティーは、ssl.client.props ファイルを指すファイル URL を参照します。 setupCmdLine.bat または setupCmdLine.sh ファイルを使用するすべてのスクリプトのコマンド行で、CLIENTSSL 変数を参照できます。
com.ibm.ssl.alias=DefaultSSLSettings
com.ibm.ssl.alias=DefaultSSLSettingsssl.client.props ファイルでは、管理 SSL 構成を変更することで、soap.client.props ファイルが変更されないようにすることができます。
グローバル・プロパティー
グローバル SSL プロパティーは、プロセス固有のプロパティーであり、連邦情報処理標準 (FIPS) の使用可能化、デフォルトの SSL 別名、鍵およびトラストストア・パスのルート・ロケーションを指定する user.root プロパティーなどが含まれています。
プロパティー | デフォルト | 説明 |
---|---|---|
com.ibm.ssl.defaultAlias | DefaultSSLSettings | JSSEHelper API を呼び出して SSL 構成を検索するプロトコルによって別名が指定されていない場合に使用されるデフォルトの別名を指定します。 このプロパティーは、使用する SSL 構成を決定する、クライアント・サイドの最後のアービターです。 |
com.ibm.ssl.validationEnabled | false | true に設定すると、このプロパティーは、各 SSL 構成がロードされるたびにそれを検証します。 このプロパティーはデバッグ目的のみに使用し、実動中に不要なパフォーマンス・オーバーヘッドが発生しないようにしてください。 |
com.ibm.ssl.performURLHostNameVerification | false | true に設定すると、このプロパティーは、URL ホスト名の検証を強制します。 ターゲット・サーバーに対して HTTP URL 接続が行われた場合、サーバー証明書の共通名 (CN) がターゲット・ホスト名と一致している必要があります。 一致していない場合は、ホスト名のベリファイヤーが接続を拒否します。 デフォルト値の false は、この検査を省略します。 グローバル・プロパティーとして、デフォルトのホスト名のベリファイヤーを設定します。 すべての javax.net.ssl.HttpsURLConnection オブジェクトは、setHostnameVerifier メソッドを独自の HostnameVerifier インスタンスとともに呼び出すことで、この特定のインスタンスのホスト名検証を使用可能にすることができます。 |
com.ibm.security.useFIPS | false | true に設定すると、SSL およびその他の Java Cryptography Extension (JCE) 固有のアプリケーションに対して、FIPS 準拠アルゴリズムが使用されます。 通常、このプロパティーは、稼働環境で要求されない限りは使用不可です。 |
user.root | C:¥WebSphere¥AppServer ¥profiles¥default | このプロパティーは、鍵およびトラストストアへのルート・パスを指定する単一プロパティーとして、鍵およびトラストストアのロケーション・プロパティーで使用できます。 通常、このプロパティーはプロファイル・ルートです。 ただし、このプロパティーを、ルート・ディレクトリーに対する適切な読み取り権限および (場合によっては) 書き込み権限を持つ、ローカル・マシン上の任意のルート・ディレクトリーに変更することができます。 |
プロファイルの profile_root | C¥WebSphere¥AppServer ¥profiles¥default | 鍵およびトラストストア・ロケーション・プロパティーは、このプロパティーを、鍵およびトラストストアへのルート・パスを指定する単一プロパティーとして使用できます。 このプロパティーを、ルート・ディレクトリーに対する適切な読み取り (および場合によっては書き込み) 権限を持つ、ローカル・マシン上の任意のルート・ディレクトリーに変更することができます。 |
証明書作成プロパティー
証明書作成プロパティーを使用して、証明書の主な属性の自己署名証明書のデフォルト値を指定します。 鍵ストアに保管される識別名 (DN)、有効期限、鍵サイズ、および別名を定義できます。プロパティー | デフォルト | 説明 |
---|---|---|
com.ibm.ssl.defaultCertReqAlias | default_alias | このプロパティーは、鍵ストア内で作成された自己署名証明書を参照するのに使用するデフォルトの別名を指定します。 その名前の別名が既に存在する場合は、デフォルトの別名に _# が追加されます。ここで、番号記号 (#) は、1 から始まる整数であり、固有の別名を検出するまで増分します。 |
com.ibm.ssl.defaultCertReqSubjectDN | cn=${hostname}、o=IBM、c=US | このプロパティーは、証明書の作成時にその証明書に設定されたプロパティー識別名 (DN) を使用します。 ${hostname} 変数は、そのプロパティーが存在するホスト名として展開されます。 X.509 証明書で指定された、正しい形式の DN を使用できます。 |
com.ibm.ssl.defaultCertReqDays | 365 | このプロパティーは証明書の有効期間を指定します。最短で 1 日から最長で証明書で設定できる最大日数 (約 20 年) まで設定できます。 |
com.ibm.ssl.defaultCertReqKeySize | 1024 | このプロパティーは、デフォルトの鍵サイズです。 有効な値は、インストールされている Java 仮想マシン (JVM) セキュリティー・ポリシー・ファイルによって決まります。 製品 JVM のデフォルトのエクスポート・ポリシー・ファイルでは、鍵サイズが 1024 に制限されています。 2048 などの大きい鍵サイズを取得するには、Web サイトから制限付きポリシー・ファイルをダウンロードします。 |
SSL 構成プロパティー
SSL 構成プロパティーのセクションを使用して、複数の SSL 構成を設定します。 新しい SSL 構成仕様のために com.ibm.ssl.alias プロパティーを設定します。これは、パーサーがこの別名を使用して新しい SSL 構成を開始するためです。 SSL 構成は、デフォルトの別名プロパティーを通じて、sas.client.props や soap.client.props などの別のファイルからの別名プロパティーを使用して参照されます。 以下の表で指定されているプロパティーを使用すると、他の SSL オブジェクトの中でも特に javax.net.ssl.SSLContext を作成できます。プロパティー | デフォルト | 説明 |
---|---|---|
com.ibm.ssl.alias | DefaultSSLSettings | このプロパティーは、この SSL 構成の名前であり、SSL 構成の最初のプロパティーにする必要があります。これは、このプロパティーが SSL 構成を参照するためです。 構成内で参照された後にこのプロパティーの名前を変更すると、参照が見つからない場合に、ランタイムはデフォルトの com.ibm.ssl.defaultAlias プロパティーになります。 有効でない SSL 参照を使用してアプリケーションを開始すると、エラー「trust file is null」または「key file is null」が表示される場合があります。 |
com.ibm.ssl.protocol | SSL_TLS | このプロパティーは、この SSL 構成で使用される SSL ハンドシェーク・プロトコルです。 このプロパティーは、Transport Layer Security (TLS) を最初に試行しますが、SSLv3 および TLS を含むすべてのリモート・ハンドシェーク・プロトコルを受け入れます。 このプロパティーの有効な値には、SSLv2 (クライアント・サイドのみ)、SSLv3、SSL、TLS、TLSv1、および SSL_TLS があります。 |
com.ibm.ssl.securityLevel | HIGH | このプロパティーは、SSL ハンドシェークで使用される暗号グループを指定します。 通常は HIGH が選択されており、128 ビット以上の暗号を指定します。 MEDIUM を選択すると、40 ビットの暗号が使用されます。 LOW を選択すると、暗号化は行わないものの、データ保全性のために署名を実行する暗号が使用されます。 独自の暗号リスト選択を指定した場合は、com.ibm.ssl.enabledCipherSuites プロパティーのコメントを外します。 |
com.ibm.ssl.trustManager | IbmX509 | このプロパティーは、ターゲット・サーバーによって送信された証明書を検証するのに必要なデフォルトのトラスト・マネージャーを指定します。 このトラスト・マネージャーは、証明書取り消しリスト (CRL) 検査を行いません。 これを、証明書の CRL 配布リストを使用した CRL 検査を行う IbmPKIX に変更できます。これは、CRL 検査の標準的な実行方法です。 カスタム CRL 検査を実行する必要がある場合は、カスタム・トラスト・マネージャーを実装し、com.ibm.ssl.customTrustManagers プロパティーでそのトラスト・マネージャーを指定する必要があります。 この IbmPKIX オプションは、信頼性検証で IBMCertPath を必要とするため、パフォーマンスに影響を与える場合があります。 CRL 検査が必要でない限りは、IbmX509 を使用してください。 |
com.ibm.ssl.keyManager | IbmX509 | このプロパティーは、指定した鍵ストアからクライアントの別名を選択するのに使用するデフォルトの鍵マネージャーを指定します。 この鍵マネージャーは、com.ibm.ssl.keyStoreClientAlias プロパティーを使用して鍵ストアの別名を指定します。 このプロパティーが指定されない場合は、Java Secure Socket Extension (JSSE) が選択を代行します。 通常、JSSE は最初に見つかった別名を選択します。 |
com.ibm.ssl.contextProvider | IBMJSSE2 | このプロパティーは、SSL コンテキストを作成するための JSSE プロバイダーを選択する際に使用されます。 Java 仮想マシン (JVM) を使用する場合は、デフォルトの IBMJSSE2 をお勧めします。 Sun JVM を使用している場合は、クライアント・プラグインで SunJSSE プロバイダーを使用できます。 |
com.ibm.ssl.enableSignerExchangePrompt | true | このプロパティーは、クライアントのトラストストアに署名者が存在しない場合に、署名者の交換プロンプトを表示するかどうかを指定します。 このプロンプトでは、リモートの証明書に関する情報が表示されるため、WebSphere Application Server は署名者を信頼するかどうかを決定できます。 証明書のシグニチャー (ハッシュ) を検証することは非常に重要です。 このシグニチャーは、証明書が元のサーバー証明書から変更されていないことを保証できる唯一の信頼性の高い情報です。 自動化されたシナリオでは、このプロパティーを使用不可にして、SSL ハンドシェーク例外が発生しないようにしてください。 SSL 署名者の交換をセットアップする retrieveSigners.bat ファイルまたは retrieveSigners.sh スクリプトを実行して、クライアントを実行する前にサーバーから署名者をダウンロードします。 |
com.ibm.ssl.keyStoreClientAlias | デフォルト | このプロパティーは、ターゲットがクライアント認証を要求しない場合に、指定した鍵ストアから別名を参照するために使用します。 WebSphere Application Server が SSL 構成の自己署名証明書を作成する際、このプロパティーによって別名が決定され、グローバル com.ibm.ssl.defaultCertReqAlias プロパティーがオーバーライドされます。 |
com.ibm.ssl.customTrustManagers | デフォルトでコメント化 | このプロパティーを使用すると、コンマで区切られた 1 つ以上のカスタム・トラスト・マネージャーを指定できます。 これらのトラスト・マネージャーは、algorithm|provider または classname の形式で指定できます。 例えば、IbmX509|IBMJSSE2 は algorithm|provider 形式、com.acme.myCustomTrustManager インターフェースは classname 形式です。 このクラスは、javax.net.ssl.X509TrustManager インターフェースを実装する必要があります。 オプションにより、このクラスで com.ibm.wsspi.ssl.TrustManagerExtendedInfo インターフェースを実装できます。 これらのトラスト・マネージャーは、com.ibm.ssl.trustManager インターフェースで指定されたデフォルト・トラスト・マネージャーに加えて実行されます。 これらのトラスト・マネージャーは、デフォルト・トラスト・マネージャーに置き換わるものではありません。 |
com.ibm.ssl.customKeyManager | デフォルトでコメント化 | このプロパティーを使用すると、カスタム鍵マネージャーを 1 つのみ指定できます。 この鍵マネージャーは、com.ibm.ssl.keyManager プロパティーに指定されたデフォルト鍵マネージャーに置き換わります。 鍵マネージャーの形式は、algorithm|provider または classname です。 com.ibm.ssl.customTrustManagers プロパティーの形式の例を参照してください。 このクラスは、javax.net.ssl.X509KeyManager インターフェースを実装する必要があります。 オプションにより、このクラスで com.ibm.wsspi.ssl.KeyManagerExtendedInfo インターフェースを実装できます。 この鍵マネージャーは、別名の選択を担当します。 |
com.ibm.ssl.dynamicSelectionInfo | デフォルトでコメント化 | このプロパティーは、SSL 構成との動的な関連付けを使用可能にします。
動的な関連付けの構文は、outbound_protocol、target_host、または target_port です。
複数を指定する場合は、区切り文字として垂直バー ( | ) を使用します。
これらの値をアスタリスク (*) に置き換えることにより、ワイルドカード値を示すことができます。
有効な outbound_protocol 値には、IIOP、HTTP、LDAP、SIP、BUS_CLIENT、BUS_TO_WEBSPHERE_MQ、BUS_TO_BUS、および ADMIN_SOAP があります。
SSL 構成を選択する動的な選択基準が必要な場合は、デフォルトのプロパティーのコメントを外し、接続情報を追加します。
例えば、以下の内容を 1 行で追加します。
com.ibm.ssl.dynamicSelectionInfo=HTTP, .ibm.com,443|HTTP,.ibm.com,9443 |
com.ibm.ssl.enabledCipherSuites | デフォルトでコメント化 | このプロパティーを使用すると、カスタム暗号スイートのリストを指定して、com.ibm.ssl.securityLevel プロパティーのグループ選択をオーバーライドできます。 有効な暗号のリストは、プロバイダーおよび適用された JVM ポリシー・ファイルによって異なります。 暗号スイートでは、スペースを区切り文字として使用します。 |
com.ibm.ssl.keyStoreName | ClientDefaultKeyStore | このプロパティーは、鍵ストア構成名を参照します。 鍵ストアを定義していない場合、残りの鍵ストア・プロパティーはこのプロパティーに従う必要があります。 鍵ストアを定義した後で、このプロパティーを指定して、前に指定した鍵ストア構成を参照するようにできます。 ssl.client.props ファイルの新しい鍵ストア構成には、固有の名前が付けられます。 |
com.ibm.ssl.trustStoreName | ClientDefaultTrustStore | このプロパティーは、トラストストア構成名を参照します。 トラストストアを定義していない場合、残りのトラストストア・プロパティーはこのプロパティーに従う必要があります。 トラストストアを定義した後で、このプロパティーを指定して、前に指定したトラストストア構成を参照するようにできます。 ssl.client.props ファイルの新しいトラストストア構成には、固有の名前を付ける必要があります。 |
鍵ストア構成
SSL 構成は、証明書のロケーションを識別する鍵ストア構成を参照します。 証明書は、SSL 構成を使用するクライアントの ID を示します。 他の SSL 構成プロパティーを使用して、鍵ストア構成を指定できます。 ただし、ssl.client.props ファイルのこのセクションにある鍵ストア構成は、com.ibm.ssl.keyStoreName プロパティーが新しい鍵ストア構成の開始を識別した後に指定することが推奨されます。 鍵ストア構成を完全に定義すると、com.ibm.ssl.keyStoreName プロパティーは、ファイルのどこからでも鍵ストア構成を参照できるようになります。プロパティー | デフォルト | 説明 |
---|---|---|
com.ibm.ssl.keyStoreName | ClientDefaultKeyStore | このプロパティーは、ランタイムで参照される鍵ストアの名前を指定します。 重複を回避するため、他の SSL 構成がこの名前を参照できるのは、ssl.client.props ファイルのかなり下の方です。 |
com.ibm.ssl.keyStore | ${user.root}/etc/key.p12 | このプロパティーは、鍵ストアのロケーションを com.ibm.ssl.keyStoreType プロパティーに必要な形式で指定します。 通常、このプロパティーは鍵ストア・ファイル名を参照します。 ただし、暗号トークン・タイプの場合、このプロパティーはダイナミック・リンク・ライブラリー (DLL) ファイルを参照します。 |
com.ibm.ssl.keyStorePassword | WebAS | このプロパティーは、プロファイル作成時におけるプロファイルのセル名であるデフォルトのパスワードです。 通常、このパスワードは、{xor} アルゴリズムを使用してエンコードされます。 iKeyman を使用して鍵ストアのパスワードを変更し、次にこの参照を変更できます。 パスワードが不明で、証明書が作成されている場合、このプロパティーのパスワードを変更し、次に鍵ストアが存在するロケーションから鍵ストアを削除します。 鍵ストア名が DefaultKeyStore で終わり、fileBased プロパティーが true の場合に限り、クライアントを再始動して、新規パスワードを使用して鍵ストアを再作成します。 鍵ストアとトラストストアの両方を同時に削除し、両方が一緒に再作成された場合に、適切な署名者の交換が行われるようにします。 |
com.ibm.ssl.keyStoreType | PKCS12 | このプロパティーは鍵ストアのタイプです。 他のアプリケーションとのインターオペラビリティーという観点から、デフォルトの PKCS12 を使用してください。 このプロパティーは、プロバイダー・リストの JVM でサポートされる任意の有効な鍵ストア・タイプとして指定できます。 |
com.ibm.ssl.keyStoreProvider | IBMJCE | IBM Java Cryptography Extension プロパティーは、鍵ストア・タイプの鍵ストア・プロバイダーです。
通常、このプロバイダーは、暗号デバイスの IBMJCE または IBMPKCS11Impl です。
z/OS では、プロバイダーは、暗号デバイスの JCERACFKS または JCE4758KS になることがあります。 |
com.ibm.ssl.keyStoreFileBased | true | このプロパティーは、鍵ストアがファイル・ベースである、つまりファイル・システム上にあることをランタイムに示します。 |
com.ibm.ssl.keyStoreReadOnly | false | このプロパティーは、鍵ストアがランタイム中に変更できるかどうかをランタイムに示します。 |
トラストストア構成
SSL 構成は、このクライアントで信頼されるサーバーの署名者証明書を含むトラストストア構成を参照します。 他の SSL 構成プロパティーを使用して、これらのプロパティーを指定できます。 ただし、ssl.client.props ファイルのこのセクションにあるトラストストア構成は、com.ibm.ssl.trustStoreName プロパティーが新しいトラストストア構成の開始を識別した後に指定することが推奨されます。 トラストストア構成を完全に定義すると、com.ibm.ssl.trustStoreName プロパティーは、ファイルのどこからでもこの構成を参照できるようになります。
プロパティー | デフォルト | 説明 |
---|---|---|
com.ibm.ssl.trustStoreName | ClientDefaultTrustStore | このプロパティーは、ランタイムで参照されるトラストストアの名前を指定します。 重複を回避するため、他の SSL 構成が参照できるのは、ssl.client.props ファイルのかなり下の方です。 |
com.ibm.ssl.trustStore | ${user.root}/etc/trust.p12 | このプロパティーは、com.ibm.ssl.trustStoreType プロパティーで参照されるトラストストア・タイプに必要な形式でトラストストアのロケーションを指定します。 通常、このプロパティーはトラストストア・ファイル名を参照します。 ただし、暗号トークン・タイプの場合、このプロパティーは DLL ファイルを参照します。 |
com.ibm.ssl.trustStorePassword | WebAS | このプロパティーは、プロファイル作成時におけるプロファイルのセル名であるデフォルトのパスワードを指定します。 通常、このパスワードは、{xor} アルゴリズムを使用してエンコードされます。 iKeyman を使用して鍵ストアのパスワードを変更し、次にこのプロパティー内の参照を変更できます。 パスワードが不明で、証明書が作成されている場合、このプロパティーのパスワードを変更し、次にトラストストアが存在するロケーションからトラストストアを削除します。 鍵ストア名が DefaultTrustStore で終わっていて、fileBased プロパティーが true になっている場合に限り、 クライアントを再始動して、 新規パスワードを使用してトラストストアを再作成してください。 鍵ストアとトラストストアの両方を同時に削除し、両方が一緒に再作成された場合に、適切な署名者の交換が行われるようにすることをお勧めします。 |
com.ibm.ssl.trustStoreType | PKCS12 | このプロパティーはトラストストアのタイプです。 他のアプリケーションとのインターオペラビリティーという観点から、デフォルトの PKCS12 タイプを使用してください。 このプロパティーは、プロバイダー・リストの JVM 機能でサポートされる任意の有効なトラストストア・タイプとして指定できます。 |
com.ibm.ssl.trustStoreProvider | IBMJCE | このプロパティーは、トラストストアのタイプのトラストストア・プロバイダーです。
通常、このプロバイダーは、暗号デバイスの IBMJCE または IBMPKCS11Impl です。
プロバイダーは、暗号デバイスの JCERACFKS または JCE4758KS にすることができます。 |
com.ibm.ssl.trustStoreFileBased | true | このプロパティーは、トラストストアがファイル・ベースである、つまりファイル・システム上にあることをランタイムに示します。 |
com.ibm.ssl.trustStoreReadOnly | false | このプロパティーは、トラストストアがランタイム中に変更できるかどうかをランタイムに示します。 |