Liberty での SSL のデフォルト

Liberty におけるデフォルトの SSL 証明書、鍵ストア、構成を指定します。

デフォルトの証明書および鍵ストア

開発者が作業するために役立つ便利なツールとして、 ユーザーが securityUtility コマンドで createSSLCertificate パラメーターを使用して自己署名証明書を作成できます。 ユーザーがコマンド・ラインからツールを直接呼び出すか、あるいは、サーバーでそれを呼び出してサーバー始動時にデフォルトの証明書および鍵ストアを作成するようにすることができます。

server.xml ファイルに defaultKeyStore という keystore エレメントがある場合、 サーバーはデフォルトの鍵ストアおよび証明書を作成します。 以下に例を示します。
<keyStore id="defaultKeyStore" password="yourPassword" />

defaultKeyStore の鍵ストア構成が設定されていて、サーバー始動時に鍵ストアが存在しない場合、 サーバーは createSSLCertificate パラメーターを呼び出します。 このパラメーターは、構成で指定されるパスワードを使用して鍵ストアを作成します。

デフォルト鍵ストアの詳細:
  • 場所: 鍵ストア・ファイルの名前は key.jks で、サーバーまたはクライアントの resources/security ディレクトリーにあります。
  • 鍵ストア・タイプ: 鍵ストア・タイプは JKS です。
  • パスワード: 構成で提供されたパスワード。
Liberty で作成されるデフォルト証明書の詳細:
  • タイプ: 証明書は自己署名証明書です。
  • サイズ: デフォルト証明書サイズは 2048 です。
  • 署名アルゴリズム: 証明書の署名アルゴリズムは SHA256WITHRSA です。
  • 有効期間: 証明書は 365 日間有効です。
  • SubjectDN: 証明書は、CN=<hostname>,OU=<client or server name>,O=ibm,C=US の SubjectDN で作成されます。

ユーザーが証明書をカスタマイズしたい場合は、コマンド行で createSSLCertificate パラメーターを呼び出すことができます。

注: スタンドアロンの Liberty サーバーが作成する自己署名証明書は、実動での使用を目的としていません。それらは、開発者の便宜のために作成されます。 この証明書は、信頼される認証局によって発行された証明書に劣らずセキュアです。ただし、実動で使用される証明書は、信頼される認証局によって発行または署名された適切なチェーン証明書でなければなりません。Collective Controller が メンバーに発行するチェーン証明書は、署名された証明書です。

デフォルト SSL 構成

SSL に必要な最小構成は、 defaultKeyStore という単一の keystore エレメントです。 構成に defaultKeyStore が存在する場合、ランタイムは、それに基づく defaultSSLConfig という SSL 構成を作成します。

defaultSSLConfig の詳細:

  • プロトコル: IBM® JRE が使用されるとき、プロトコルはデフォルトで SSL_TLSv2 に設定されます。Oracle JRE が使用される場合、プロトコルとして SSL が使用されます。
  • 暗号: 基礎となる JRE からサポートされる暗号のリストを取得することで、暗号リストが作成されます。 デフォルトでリストは、128 ビット以上のすべての暗号または 3DES に削減されます。 RC4 は、これを有効にすることが安全とみなされないため、削除されます。ECDHE 暗号は、これをサポート しないサーバーを使用する場合にエラーが発生する可能性があるため、削除されます。暗号リストをカスタマイズして、それらを含めることができます。
  • クライアント認証: デフォルトで clientAuthenticationclientAuthenticationSupported は使用不可です。
  • 鍵ストア:デフォルト構成では、鍵とトラストストアの両方として defaultKeyStore が使用されます。

SSL 構成プロパティーをカスタマイズするために、server.xml ファイルに defaultSSLConfig という ssl エレメントを入れることができます。defaultSSLConfig というカスタマイズした ssl エレメントは、別の SSL 構 成がデフォルトとして識別されていない場合、デフォルトの SSL 構成のように引き続き扱われます。 詳しくは、SSL 構成の属性を参照してください。

デフォルト SSL 構成として構成で別の ssl エレメントを指定するために、 ユーザーは sslDefault エレメントでそれを識別できます。
<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() の呼び出しにより、無効になります。


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



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