金鑰儲存庫
Liberty 設定檔只能建立金鑰儲存庫類型的「Java 金鑰儲存庫 (JKS)」。對於 Liberty 設定檔中其他金鑰儲存庫類型的支援,取決於基礎「Java 執行時期環境 (JRE)」所支援的項目。以下是 Liberty 設定檔中不同的金鑰儲存庫類型。
如需 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" />
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"/>