金鑰儲存庫

「Java™ 金鑰儲存庫 (JKS)」是 Liberty 唯一能夠建立的金鑰儲存庫類型。 Liberty 中對於其他金鑰儲存庫類型的支援取決於基礎「Java 執行時期環境 (JRE)」所支援的項目。

如需 keystore 元素配置屬性的相關資訊,請參閱SSL 配置屬性

JKS 和 JCEKS

在 IBM JRE 和 Oracle JRE 之間,「Java 金鑰儲存庫 (JKS)」和「Java 加密法延伸金鑰儲存庫 (JCEKS)」很常見,您可以利用其中任何一個 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。 這個檔案至少必須包含 namelibrary 屬性。 例如:
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 金鑰儲存庫

當您使用 IBM JRE 時,可以使用「公開金鑰密碼化標準 #12 (PKCS12)」金鑰儲存庫,但不能由 Liberty 建立。 PKCS12 金鑰儲存庫配置的範例如下:
    <keyStore id="samplePKCS12KeyStore"
     location="MyKeyStoreFile.p12"
     type="PKCS12" password="myPassword" />

CMS 金鑰儲存庫

使用 IBM JRE 時,可以配置 CMS 金鑰儲存庫(但不能由 Liberty 建立),不過需要一些特殊配置。 依預設,在 IBM JRE 上無法使用 CMS 提供者,因此,它必須新增至 IBM JRE java.security 檔內的提供者清單中。 下列範例將 com.ibm.security.cmskeystore.CMSProvider 類別新增到清單結尾。 請確定提供者清單中的提供者號碼正確。 Liberty 不會利用 CMS 金鑰儲存庫隱藏檔來取得對金鑰儲存庫的存取權。
    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"/>
適用於 z/OS 平台

RACF 金鑰環類型

RACF® 金鑰環可用來作為 z/OS® 上的金鑰儲存庫,但不能由 Liberty 建立。 兩個可用的金鑰環類型為:JCERACFKS 和 JCEHYBRIDRACFKS。

JCERACFKS 金鑰儲存庫
JCERACFKS 是 RACF 金鑰環類型。您必須先設定 RACF,Liberty 才能使用它。請在 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" /> 

指示主題類型的圖示 參照主題

檔名:rwlp_sec_keystores.html