SSL の鍵ストア構成
鍵ストア構成を使用して、WebSphere® Application Server のランタイムが Secure Sockets Layer (SSL) 構成用に、鍵ストア・タイプをロードし、管理する方法を定義します。
デフォルトで、java.security.Security.getAlgorithms("KeyStore") 属性は、定義済みの鍵ストア・タイプのリストを管理コンソールに表示しません。 代わりに、WebSphere Application Server は、java.security.KeyStore オブジェクトによって参照できるすべての鍵ストア・タイプ、例えば、ハードウェア暗号、z/OS® プラットフォーム、IBM® i プラットフォーム、IBM Java™ Cryptography Extension (IBMJCE)、および Java ベースの証明書管理サービス (CMS) プロバイダーの鍵ストアなどを取り出します。鍵ストア・プロバイダーを java.security ファイルで指定した場合や、プログラマチックにプロバイダー・リストに 追加した場合、WebSphere Application Server はカスタム鍵ストアも取り出します。 この取り出しのリストは、プラットフォームおよびプロセスの java.security 構成によって異なります。
IBMJCE ファイル・ベースの鍵ストア (JCEKS、JKS、および PKCS12)
<keyStores xmi:id="KeyStore_1" name="NodeDefaultKeyStore"
password="{xor}349dkckdd=" provider="IBMJCE"
location="${USER_INSTALL_ROOT}/config/cells/myhostNode01Cell
/nodes/myhostNode01/key.p12" type="PKCS12" fileBased="true"
hostList="" initializeAtStartup="true" readOnly="false"
description="Default key store for myhostNode01" usage="SSLKeys"
managementScope="ManagementScope_1"/>
デフォルトの鍵ストア構成について詳しくは、SSL でのデフォルトのチェーン証明書の構成を参照してください。属性名 | デフォルト | 説明 |
---|---|---|
xmi:id | 多様 | 構成の別の領域 (例えば、SSL 構成) から鍵ストアを参照するために発行した値です。 この値を security.xml ファイル内で固有にします。 |
name | JSSE 鍵ストアの場合: CellDefaultKeyStore JSSE トラストストアの場合: CellDefaultTrustStore | 目で確認することによって、鍵ストアを識別するのに使用する名前です。 名前が DefaultKeyStore または DefaultTrustStore で終わるかどうかに基づいて、その鍵ストアがデフォルトの鍵ストアか、そうでないかを判別できます。 |
password | デフォルトの鍵ストア・パスワードは、WebAS です。 これは、なるべく早く変更することをお勧めします。 詳しくは、スクリプトによるデフォルトの鍵ストア・パスワードの更新を参照してください。 | 鍵ストア名にアクセスするために使用するパスワードは、鍵ストアに鍵を保管するために使用するデフォルト・パスワードでもあります。 |
description | デフォルトなし | 鍵ストアの説明。 |
使用法 | 鍵ストアが使用される用途を指定する属性。 | 有効な値は次のとおりです。SSLKeys、KeySetKeys、RootKeys、 DeletedKeys、DefaultSigners、RSATokenKeys。 |
provider | デフォルトのプロバイダーは IBMJCE です。 | type 属性 (例えば、PKCS12 タイプ) を実装する Java プロバイダー。 このプロバイダーは指定しないでおくことができます。指定しないと、指定された鍵ストア・タイプを実装する最初のプロバイダーが使用されます。 |
location | デフォルトはさまざまですが、 通常は、構成リポジトリーのノード・ディレクトリー またはセル・ディレクトリー内にある、key.p12 ファイル または trust.p12 ファイルを参照します。 これらのファイルは PKCS12 タイプの鍵ストアです。 | 鍵ストアのロケーション参照です。鍵ストアがファイル・ベースである場合、ロケーションは、鍵ス トアがあるノードのファイル・システムのパスを参照できます。 ただし、ロケーションが構成リポジトリー以外にあり、 管理コンソールまたは wsadamin ユーティリティーから 鍵ストアをリモートで管理する場合は、 鍵ストアがあるノードのホスト名を含む hostList 属性を指定してください。 |
type | デフォルトの Java 暗号装置鍵ストア・タイプは、PKCS12 です。 | このタイプは鍵ストアを指定します。有効なタイプは、java.security.Security.getAlgorithms("KeyStore") 属性が戻すタイプです。
これらのタイプには、次の鍵ストアのタイプが含まれており、
その可用性は、プロセスおよび
プラットフォームの java.security 構成によって異なります。
|
fileBased | デフォルトは true です。 | このオプションは、デフォルトの鍵ストアに必要です。これはファイル・システムの鍵ストアを示すので、鍵ストア のロードおよび保管には FileInputStream または FileOutputStream を使用できます。 |
hostList | 鍵ストアをリモートで管理できるように、リモート・ホスト名を指定するには、hostList 属性を使用します。 デフォルトでは、リモートで管理できる鍵ストアはありません。 すべてのデフォルトの鍵ストアは、構成リポジトリーでローカルに管理され、各ノードに同期されます。 | このオプションは鍵ストアをリモートで管理します。鍵ストアに、有効なノードのホスト名を設定できます。 管理コンソールまたは wsadmin ユーティリティーのいずれかを使用して、この鍵ストアの証明書を管理する場合は、 承認操作のために、鍵ストアがあるノードに MBean 呼び出しが行われます。 鍵ストア操作の同期は保証されていませんが、複数のホストを指定できます。 例えば、特定の操作を実行した場合に、リストされているホストの 1 つが停止する可能性があります。 このため、このリストの複数のホストを使用してください。 |
initializeAtStartup | デフォルトは true です。 | このオプションは、ランタイムに、開始時に鍵ストアを初期化するように、通知しま す。 このオプションは、ハードウェア暗号装置の加速に関して、重要になる場合があります。 |
readOnly | デフォルトは false です。 | このオプションは、構成に対して、この鍵ストアへの書き込みができないことを
通知します。
つまり、鍵ストアに対するある種の更新操作を試行できず、許可されていないということです。
読み取り専用鍵ストア・タイプの例は、z/OS プラットフォーム上の JCERACFKS です。このタイプは、WebSphere
の証明書管理の立場から見ると読み取り専用ですが、RACF® 用の鍵ストア管理機能を使用して更新することもできます。
|
managementScope | デフォルトの有効範囲は、ベース・アプリケーション・サーバー環境の場合はノード有効 範囲で、Network Deployment 環境の場合はセル有効範囲です。 | このオプションは、この鍵ストアを表示できる特定の管理有効範囲を参照します。 例えば、ハードウェア暗号デバイスが物理的に特定のノードに存在する場合は、 | のトポロジー表示において、そのノードへのリンクから鍵ストアを作成します。また、管理有効範囲を使用して、鍵ストア参照を分離することもできます。 特定のアプリケーション・サーバーだけに鍵ストアの参照を許可する、つまり管理有効範囲をその特定のサーバーのみにすることが必要な場合があります。
![[z/OS]](../images/ngzos.gif)
z/OS 鍵ストア
WebSphere Application Server では、IBMJCE ファイル・ベースの鍵ストア、Java Cryptography Extension Key Stores (JCEKS)、Java Key Stores (JKS)、Public Key Cryptography Standards 12 (PKCS12)、また z/OS 固有の鍵ストアをサポートします。z/OS 上での IBMJCE ファイル・ベースの鍵ストアのサポートは、 分散プラットフォーム上のサポートと完全な互換性があり、これに類似しています。
IBMJCECCA プロバイダーは IBMJCE4758 プロバイダーを旧リリースから拡張し、置き換えます。IBMJCECCA プロバイダーおよび IBMJCE4758 プロバイダーは、機能的に等価です。IBMJCECCA プロバイダーは 4 つの鍵ストア JCECCAKS (JCE4758KS) および JCECCARACFKS (JCE4758RACFKS) をサポートします。
JCECCAKS 鍵ストアは、z/OS ハードウェアに保管され、ICSF により管理される鍵を使用します。JCECCARACFKS 鍵ストアは、RACF 鍵リング内で管理および保管されている証明書を処理し、鍵は z/OS ハードウェアに保管されます。 JCE4758KS および JCE4758RACFKS の鍵ストアは下位互換性のために組み込まれており、推奨されません。JCECCAKS 鍵ストアは JCE4758KS 鍵ストアを拡張し、置き換えます。JCECCARACFKS 鍵ストアは JCE4758RACFKS 鍵ストアを拡張し、置き換えます。
- JCECCAKS 鍵ストア (JCE4758KS の置き換え) は、z/OS ハードウェアに保管されている鍵、 および Integrated Cryptographic Services Facility (ICSF) で管理される鍵を使用します。
- JCERACFKS 鍵ストアは、リソース・アクセス管理機能 (RACF) ベースの鍵ストアで、 RACF 鍵ストアに含まれる鍵および証明書をサポートするのに使用されます。 ICSF に含まれる鍵の構成要素は、この鍵ストア・タイプではサポートされていません。
- JCECCARACFKS (JCE4758RACFKS の拡張および置き換え) 鍵ストアは RACF ベースの鍵ストアで、RACF 鍵ストアに 含まれる証明書および z/OS ハードウェアに保管される鍵をサポートするのに使用されます。RACF RACDCERT では、ICSF オプションを 指定する必要があります。
- IBMJCE プロバイダーの JCERACFKS 鍵ストア・タイプ、および IBMJCECCA プロバイダーの JCECCARACFKS 鍵ストア・タイプは、SAF が使用可能な z/OS プラットフォーム上でのみ使用することができます。
- 管理コンソールを使用して、個人証明書を Base64 エンコード ASCII データ・タイプまたはバイナリー DER データ・タイプとして HFS に抽出できます。しかし、SSL 構成の鍵ストア・タイプが JCERACFKS である場合、HFS に 0 バイトのファイルが作成されます。
- パスワードの要求時に JCE 鍵ストアとの互換性を保つため、JCERACFKS は password というパスワードを要求します。 この鍵ストアのセキュリティーは、他の鍵ストア・タイプとは異なり、パスワードによって本当に保護されるわけではなく、RACF による保護を受けるための実行スレッドの ID に基づいています。このパスワードは、「パス」フィールドで指定した鍵ストア・ファイル用のものです。
IBMJCE プロバイダーは、前出のリストされている z/OS 固有の鍵ストアのセットにある JCERACFKS 鍵ストアのみをサポートできます。 IBMJCE プロバイダーは、JCECCAKS または JCECCARACFKS 鍵ストアの構成要素を使用できません。 これはそのハードウェア固有であるためです。
IBMJCECCA プロバイダーは、JCERACFKS、JKS、および JCEKS 鍵ストアのソフトウェア鍵構成要素をサポートし、ハードウェアの加速を利用できます。
IBMJCE プロバイダーおよび IBMJCECCA プロバイダーに、新しい鍵ストア・クラス JceRACFKeyStore が追加されました。この鍵ストアにより、WebSphere Application Server は鍵リングからの読み取りが可能になるため、鍵リングから証明書および鍵を取り出す場合はこのクラスを使用してください。 ただし、サーバーが鍵リングにデータを書き込もうとすると、IOException がスローされます。RACFInputStream は任意の鍵ストアを処理しますが、サーバーが JceRACFKeyStore クラス以外の鍵ストアを使用する場合は、RACF に保管されたデータが誤って階層ファイル・システム (HFS) ファイルに書き込まれる可能性があります。
- RACFInputStream を使用して、新規に作成したインスタンスを直接 JceRACFKeyStore クラスに渡します
- URLStreamHandler を使用して、RACFInputStream を呼び出してから、インスタンスを JceRACFKeyStore クラスに 渡します
JceRACFKeyStore および RACFInputStream を含むすべての JAVA RACF サービスは、R_datalib (IRRSDL00) サービスを使用して RACF から証明書を取り出します。 ただし、このサービスを使用するには、JAVA RACF クラスを使用する前に、R_datalib に対する許可を取得する必要があります。必要な許可をセットアップする方法について詳しくは、「OS/390® Security Server Callable Services guide」を参照してください。
CMS 鍵ストア
プロバイダー固有の属性の中には、CMS 鍵ストアで設定できる ものがあります。
![[z/OS]](../images/ngzos.gif)
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
<keyStores xmi:id="KeyStore_1132071489571" name="CMSKeyStore"
password="{xor}HRYNFAtrbxEwOzpvbhw6MzM=" provider="IBMCMSProvider"
location="${USER_INSTALL_ROOT}¥profiles¥AppSrv01/config/cells/myhostCell01
/nodes/myhostNode01/servers/webserver1/plugin-key.kdb" type="CMSKS"
fileBased="true" createStashFileForCMS="true"
managementScope="ManagementScope_1132071489569"/>
<keyStores xmi:id="KeyStore_1132071489571" name="CMSKeyStore"
password="{xor}HRYNFAtrbxEwOzpvbhw6MzM=" provider="IBMi5OSJSSEProvider"
location="${USER_INSTALL_ROOT}¥profiles¥AppSrv01/config/cells/myhostCell01
/nodes/myhostNode01/servers/webserver1/plugin-key.kdb" type="IBMi5OSKeyStore"
fileBased="true" createStashFileForCMS="true"
managementScope="ManagementScope_1132071489569"/>
![[IBM i]](../images/iseries.gif)
![[IBM i]](../images/iseries.gif)
ハードウェア暗号鍵ストア
暗号デバイスの構成については、暗号を使用するための鍵管理を参照してください。
カスタム・プロパティー com.ibm.ssl.keyStoreSlot として、または構成属性 slot="0" として、スロットを追加できます。カスタム・プロパティーは、後方互換性の属性の前に読み取られます。