鍵ストア
Liberty は、Java™ 鍵ストア (JKS) の鍵ストア・タイプのみを作成できます。Liberty での他のタイプの鍵ストアのサポートは、基礎の Java ランタイム環境 (JRE) で何がサポートされているかに依存します。
keystore エレメントの構成属性について詳しくは、SSL 構成の属性を参照してください。
JKS および JCEKS
Java 鍵ストア (JKS) と Java Cryptography Extensions 鍵ストア (JCEKS) は、IBM JRE と Oracle JRE 間で共通であり、どちらの JRE を使用しても同じ構成にできます。JKS は、Liberty のデフォルトの鍵ストア・タイプで、Liberty が作成できる唯一の鍵ストアのタイプです。構成内に鍵ストア・タイプが指定されていない場合は、JKS が使用されます。
以下に、JKS 鍵ストア構成の例を示します。
<keyStore id="sampleJKSKeyStore"
location="MyKeyStoreFile.jks"
type="JKS" password="myPassword" />
以下に、JCEKS 鍵ストア構成の例を示します。
<keyStore id="sampleJCEKSKeyStore"
location="MyKeyStoreFile.jceks"
type="JCEKS" password="myPassword" />
PKCS11 鍵ストア
Liberty サーバーを使用して暗号トークン・サポートを提供するために、ハードウェア暗号鍵ストアを構成することができます。
ユーザーは、ハードウェア・デバイス固有の構成ファイルを提供する必要があります。
この構成ファイルは、attribute = value というフォーマットをしたエントリーを含むテキスト・ファイルです。
このファイルには、少なくとも name 属性と library 属性が必要です。
以下に例を示します。
name = HWDevice
library = /opt/foo/lib/libpkcs11.so
name 属性は、デバイスのこのインスタンスに付けられる名前です。 library 属性には、ハードウェア・デバイスにアクセスするためにそのデバイスで提供されるライブラリーのパスが含まれます。 構成ファイルには、ハードウェア・デバイス固有の構成データも含められます。
Liberty で PKCS11 鍵ストアを構成するために、keystore エレメントは以下のフィールドを含む必要があります。
- id - 構成で keystore エレメントを固有に識別します。
- location - ハードウェア・デバイス固有の構成ファイルのパス。
- type - 鍵ストア・タイプとして PKCS11 が指定されなければなりません。
- fileBased - この鍵ストアをデバイスとして識別するには false でなければなりません。
- password - デバイスで鍵にアクセスするために必要なパスワード。
- provider - 必要なプロバイダー。 IBM® JRE の場合の値は IBMPKCS11Impl でなければなりません。 Oracle JRE の場合は、SunPKCS11 でなければなりません。
以下に構成例を示します。
<keyStore id="hwKeyStore"
location="${server.config.dir}/HWCrypto.cfg"
type="PKCS11"
fileBased="false"
password="{xor}Lz4sLCgwLTs="
provider="IBMPKCS11Impl"/>
PKCS12 鍵ストア
Public Key Cryptography Standards #12 (PKCS12) 鍵ストアは、IBM JRE が使用されている場合、Liberty で使用できますが、作成はできません。以下に、PKCS12 鍵ストア構成の例を示します。
<keyStore id="samplePKCS12KeyStore"
location="MyKeyStoreFile.p12"
type="PKCS12" password="myPassword" />
CMS 鍵ストア
CMS 鍵ストアは、IBM JRE が使用されているが一部の特別な構成が必要な場合には、Liberty で構成することはできますが、作成することはできません。
CMS プロバイダーは、デフォルトでは IBM JRE で使用できないため、IBM JRE の java.security ファイル内のプロバイダー・リストに追加する必要があります。以下の例では、リストの最後に com.ibm.security.cmskeystore.CMSProvider クラスが追加されています。プロバイダー・リスト内のプロバイダー番号が正しいことを確認してください。Liberty は、鍵ストアにアクセスするとき、CMS 鍵ストア stash ファイルは使用しません。
security.provider.1=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.3=com.ibm.security.jgss.IBMJGSSProvider
security.provider.4=com.ibm.security.cert.IBMCertPath
security.provider.5=com.ibm.security.sasl.IBMSASL
security.provider.6=com.ibm.xml.crypto.IBMXMLCryptoProvider
security.provider.7=com.ibm.xml.enc.IBMXMLEncProvider
security.provider.8=org.apache.harmony.security.provider.PolicyProvider
security.provider.9=com.ibm.security.jgss.mech.spnego.IBMSPNEGO
security.provider.10=com.ibm.security.cmskeystore.CMSProvider
CMS 鍵ストアを使用する場合、server.xml ファイル内の構成は以下のようになります。
<keyStore id="sampleCMSKeyStore"
password="myPassword"
location="MyKeyStoreFile.kdb"
provider="IBMCMSProvider"
type="CMSKS"/>

RACF 鍵リング・タイプ
RACF® 鍵リングは、z/OS® 上の鍵ストアとして Liberty で使用できますが、作成はできません。使用可能な 2 つの鍵リング・タイプは、JCERACFKS と JCEHYBRIDRACFKS です。
- JCERACFKS 鍵ストア
- JCERACFKS は RACF 鍵リング・タイプの 1 つです。Liberty でこれを使用するには、事前に RACF をセットアップしておく必要があります。location 属性に鍵リングへの URL を指定し、fileBased 属性を false に設定します。
- 以下に、JCERACFKS 鍵ストアを使用する場合の例を示します。
<keyStore id="sampleKeyring" location="safkeyring:///Keyring" type="JCERACFKS" password="password" fileBased="false" readOnly="true" />
- JCEHYBRIDRACFKS 鍵ストア
- JCEHYBRIDRACFKS は、ハードウェア鍵ストア・タイプが構成されているかどうかをチェックする特別な鍵リングです。JCEHYBRIDRACFKS 鍵ストアが構成されていない場合は、RACF 鍵リングが使用されます。 これは IBM Java 7 SR3 以上でサポートされます。java.security ファイルを編集し、プロバイダー・リストのトップに com.ibm.crypto.ibmjcehybrid.provider.IBMJCEHYBRID クラスを追加する必要があります。新しいエントリーに合わせて、必ずプロバイダー番号を調整してください。
- 以下に、JCEHYBRIDRACFKS 鍵ストアを使用する場合の例を示します。
<keyStore id="sampleHybridKeyring" location="safkeyringhybrid:///HybridKeyring" type="JCEHYBRIDRACFKS" password="{xor}Lz4sLCgwLTs=" fileBased="false" readOnly="true" />