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)

一般的な IBMJCE ファイル・ベースの鍵ストア構成を、次のサンプル・コードで示します。
<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 でのデフォルトのチェーン証明書の構成を参照してください。
表 1 は、サンプル・コードで使用される属性を説明しています。
表 1. 鍵ストア構成. 次の表では、鍵ストア構成について説明します。
属性名 デフォルト 説明
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 構成によって異なります。
  • JKS
  • JCEKS
  • PKCS12
  • PKCS11 (Java 暗号装置)
  • CMSKS
  • IBMi5OSKeyStore
  • JCERACFKS
  • JCECCAKS 鍵ストア (JCE4758KS の置き換え) - (z/OS 暗号装置)
fileBased デフォルトは true です。 このオプションは、デフォルトの鍵ストアに必要です。これはファイル・システムの鍵ストアを示すので、鍵ストア のロードおよび保管には FileInputStream または FileOutputStream を使用できます。
hostList 鍵ストアをリモートで管理できるように、リモート・ホスト名を指定するには、hostList 属性を使用します。 デフォルトでは、リモートで管理できる鍵ストアはありません。 すべてのデフォルトの鍵ストアは、構成リポジトリーでローカルに管理され、各ノードに同期されます。 このオプションは鍵ストアをリモートで管理します。鍵ストアに、有効なノードのホスト名を設定できます。 管理コンソールまたは wsadmin ユーティリティーのいずれかを使用して、この鍵ストアの証明書を管理する場合は、 承認操作のために、鍵ストアがあるノードに MBean 呼び出しが行われます。 鍵ストア操作の同期は保証されていませんが、複数のホストを指定できます。 例えば、特定の操作を実行した場合に、リストされているホストの 1 つが停止する可能性があります。 このため、このリストの複数のホストを使用してください。
initializeAtStartup デフォルトは true です。 このオプションは、ランタイムに、開始時に鍵ストアを初期化するように、通知しま す。 このオプションは、ハードウェア暗号装置の加速に関して、重要になる場合があります。
readOnly デフォルトは false です。 このオプションは、構成に対して、この鍵ストアへの書き込みができないことを 通知します。 つまり、鍵ストアに対するある種の更新操作を試行できず、許可されていないということです。 読み取り専用鍵ストア・タイプの例は、z/OS プラットフォーム上の JCERACFKS です。このタイプは、WebSphere の証明書管理の立場から見ると読み取り専用ですが、RACF® 用の鍵ストア管理機能を使用して更新することもできます。

[z/OS]オプションで、書き込み可能な鍵リングサポートを構成して、証明書管理機能で使用される追加の鍵ストア構成を使用可能にすることができます。書き込み可能な鍵ストア構成オブジェクトの構成および使用について詳しくは、書き込み可能 SAF 鍵リングの作成および書き込み可能 SAF 鍵リングの使用を参照してください。

managementScope デフォルトの有効範囲は、ベース・アプリケーション・サーバー環境の場合はノード有効 範囲で、Network Deployment 環境の場合はセル有効範囲です。 このオプションは、この鍵ストアを表示できる特定の管理有効範囲を参照します。 例えば、ハードウェア暗号デバイスが物理的に特定のノードに存在する場合は、 「セキュリティー」 > 「Security Communications」 > 「SSL 構成」のトポロジー表示において、そのノードへのリンクから鍵ストアを作成します。また、管理有効範囲を使用して、鍵ストア参照を分離することもできます。 特定のアプリケーション・サーバーだけに鍵ストアの参照を許可する、つまり管理有効範囲をその特定のサーバーのみにすることが必要な場合があります。
[z/OS]

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 鍵ストアを拡張し、置き換えます。

z/OS プラットフォームでは、z/OS 上の WebSphere Application Server に使用することができる鍵ストア・タイプが、さらに 3 つあります。
  • 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 は、以下のいずれかの方法を使用して、System Authorization Facility (SAF) 鍵リングの実装に保管されている鍵および証明書にアクセスすることができます。
  • RACFInputStream を使用して、新規に作成したインスタンスを直接 JceRACFKeyStore クラスに渡します
  • URLStreamHandler を使用して、RACFInputStream を呼び出してから、インスタンスを JceRACFKeyStore クラスに 渡します
詳しくは、RACF 鍵リングのセットアップを参照してください。

JceRACFKeyStore および RACFInputStream を含むすべての JAVA RACF サービスは、R_datalib (IRRSDL00) サービスを使用して RACF から証明書を取り出します。 ただし、このサービスを使用するには、JAVA RACF クラスを使用する前に、R_datalib に対する許可を取得する必要があります。必要な許可をセットアップする方法について詳しくは、「OS/390® Security Server Callable Services guide」を参照してください。

CMS 鍵ストア

プロバイダー固有の属性の中には、CMS 鍵ストアで設定できる ものがあります。

[z/OS][AIX Solaris HP-UX Linux Windows]CMSKS プロバイダーが createStashFileForCMS 属性をサポートしており、この 属性を CMSKS 鍵ストアに対して true に設定する場合、WebSphere Application Server は、属性が参照する鍵ストアの場所に .sth ファイルを作成します。 拡張子 .sth が鍵ストア名の後ろに付加されます。 例えば、CMSKS 鍵ストアがプラグイン構成に使用可能であり、createStashFileForCMS を true に設定すると、次のサンプル・コードに示す stash ファイルが ${USER_INSTALL_ROOT}¥profiles¥AppSrv01/config/cells/myhostCell01/nodes/myhostNode01/servers/webserver1/plugin-key.sth パスに作成されます。
<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"/>
CMS 鍵ストアを作成する場 合は、次のサンプル・コードに示すように、CMS プロバイダーは IBMi5OSJSSEProvider であり、CMS タイプは IBMi5OSKeyStore です。
<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]注: IBM i の鍵ストア・タイプ IBMi5OSKeyStore は、.sth パスワード stash ファイルを認識も生成もしません。その代わり、.kdb 鍵ストア・ファイル用パスワードの内部レコードを、作成された場所に保持します。 .kdb ファイルを移動すると、パスワードは鍵ストアとの関連がなくなります。 その場合は、デジタル証明書マネージャー (DCM) を使用して、.kdb 鍵ストア・ファイルのパスワードの内部レコードを再作成する必要があります。詳しくは、.kdb 鍵ストアの内部パスワード・レコードの再作成を参照してください。
[IBM i]重要: 個人のチェーン証明書を作成するか、または IBMi5OSKeyStore で requestCACertificate タスクを使用する場合、IBMi5OSJSSEProvider では、新規証明書を作成する前に、チェーンの各部分の署名者が鍵ストア内に存在していることが必要になります。 したがって、新規証明書を作成する前に、署名者を IBMi5OSKeyStore 鍵ストアにインポートする必要があります。

ハードウェア暗号鍵ストア

暗号デバイスの構成については、暗号を使用するための鍵管理を参照してください。

カスタム・プロパティー com.ibm.ssl.keyStoreSlot として、または構成属性 slot="0" として、スロットを追加できます。カスタム・プロパティーは、後方互換性の属性の前に読み取られます。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_sslkeystoreconfs
ファイル名:csec_sslkeystoreconfs.html