Liberty での SSL のデフォルト
Liberty におけるデフォルトの SSL 証明書、鍵ストア、構成を指定します。
デフォルトの証明書および鍵ストア
開発者が作業するために役立つ便利なツールとして、 ユーザーが securityUtility コマンドで createSSLCertificate パラメーターを使用して自己署名証明書を作成できます。 ユーザーがコマンド・ラインからツールを直接呼び出すか、あるいは、サーバーでそれを呼び出してサーバー始動時にデフォルトの証明書および鍵ストアを作成するようにすることができます。
<keyStore id="defaultKeyStore" password="yourPassword" />
defaultKeyStore の鍵ストア構成が設定されていて、サーバー始動時に鍵ストアが存在しない場合、 サーバーは createSSLCertificate パラメーターを呼び出します。 このパラメーターは、構成で指定されるパスワードを使用して鍵ストアを作成します。
- 場所: 鍵ストア・ファイルの名前は key.jks で、サーバーまたはクライアントの resources/security ディレクトリーにあります。
- 鍵ストア・タイプ: 鍵ストア・タイプは JKS です。
- パスワード: 構成で提供されたパスワード。
- タイプ: 証明書は自己署名証明書です。
- サイズ: デフォルト証明書サイズは 2048 です。
- 署名アルゴリズム: 証明書の署名アルゴリズムは SHA256WITHRSA です。
- 有効期間: 証明書は 365 日間有効です。
- SubjectDN: 証明書は、CN=<hostname>,OU=<client or server name>,O=ibm,C=US の SubjectDN で作成されます。
ユーザーが証明書をカスタマイズしたい場合は、コマンド行で createSSLCertificate パラメーターを呼び出すことができます。
デフォルト SSL 構成
SSL に必要な最小構成は、 defaultKeyStore という単一の keystore エレメントです。 構成に defaultKeyStore が存在する場合、ランタイムは、それに基づく defaultSSLConfig という SSL 構成を作成します。
defaultSSLConfig の詳細:
- プロトコル: IBM® JRE が使用されるとき、プロトコルはデフォルトで SSL_TLSv2 に設定されます。Oracle JRE が使用される場合、プロトコルとして SSL が使用されます。
- 暗号: 基礎となる JRE からサポートされる暗号のリストを取得することで、暗号リストが作成されます。 デフォルトでリストは、128 ビット以上のすべての暗号または 3DES に削減されます。 RC4 は、これを有効にすることが安全とみなされないため、削除されます。ECDHE 暗号は、これをサポート しないサーバーを使用する場合にエラーが発生する可能性があるため、削除されます。暗号リストをカスタマイズして、それらを含めることができます。
- クライアント認証: デフォルトで clientAuthentication と clientAuthenticationSupported は使用不可です。
- 鍵ストア:デフォルト構成では、鍵とトラストストアの両方として defaultKeyStore が使用されます。
SSL 構成プロパティーをカスタマイズするために、server.xml ファイルに defaultSSLConfig という ssl エレメントを入れることができます。defaultSSLConfig というカスタマイズした ssl エレメントは、別の SSL 構 成がデフォルトとして識別されていない場合、デフォルトの SSL 構成のように引き続き扱われます。 詳しくは、SSL 構成の属性を参照してください。
<sslDefault sslRef="customSSLConfiguration" />
Liberty デフォルト SSL 構成の属性を使用して、SSLContext を作成します。 SSLContext は、Java™ API SSLContext.setDefault() を使用して、 デフォルト SSLContext としてプロセスに設定されます。 アプリケーションが https の URL を使用して httpURLConnection() のような API を呼び出して、SSL 情報を指定しない場合、 アプリケーションは、プロセスのデフォルト SSLContext を選択します。この場合、Liberty のデフォルト SSL 構成で作成された SSLContext です。
デフォルトの SSL 構成が Liberty に設定されていない場合、Liberty は JSSE のデフォルト SSLContext を使用します。JSSE のデフォルト SSLContext は、鍵ストアとトラストストアに cacerts ファイルを使用します。 SSL フィーチャーが定義されていない場合、または存在す る SSL 構成がデフォルトとして識別されていない場合、Liberty にはデフォ ルトの SSL 構成はありません。デフォルト構成は、呼び出された defaultSSLConfig になるか (defaultKeyStore が定義されている場合は暗黙的であることも可能)、あるいは、sslDefault エレメントを使用し て代替 SSL 構成を指定することもできます。
javax システム・プロパティー (javax.net.ssl.keystore) は、デフォルト SSL コンテ キストの鍵ストアおよびトラストストア情報のセットアップに使用されるものであるため、これらは使用しないでください。 これらのプロパティーがプロセスに設定された場合、SSLContext.setDefault() の呼び出しにより、無効になります。