在 Liberty 中啟用 SSL 通訊
如果要在 Liberty 中啟用 SSL 通訊,有一組最基本的 SSL 配置選項。會假設大部分的 SSL 選項需要一些金鑰儲存庫配置資訊。
關於這項作業
SSL 用戶端鑑別是在連線信號交換期間,利用 SSL 憑證來進行。 SSL 信號交換是一系列透過 SSL 通訊協定來交換的訊息,用來進行連線特定的保護協議。 在信號交換期間,安全伺服器會要求用戶端送回憑證或憑證鏈,以進行鑑別。 如果要在 Liberty 中啟用 SSL,請將 ssl-1.0 Liberty 特性連同用於鑑別的金鑰儲存庫資訊程式碼,一起新增到配置根文件檔案 server.xml 中。
依預設,配置根文件檔的路徑和檔名是 path_to_liberty/wlp/usr/servers/server_name/server.xml。 path_to_liberty 是 Liberty 在作業系統上的安裝位置,而 server_name 是伺服器的名稱。不過,您可以變更路徑。請參閱 自訂 Liberty 環境。
程序
- 在 server.xml 檔中啟用 ssl-1.0
Liberty 特性。
<featureManager> <feature>ssl-1.0</feature> </featureManager>
註: 如果需要應用程式安全,且要將安全資訊重新導向到安全的埠,您必須將 appSecurity-2.0 Liberty 特性新增至 server.xml 檔。當啟用 ssl-1.0 特性時,Liberty 伺服器會根據預設 SSL 配置建立 SSLContext,並呼叫 SSLContext.setDefault() Java API,使該 SSLContext 成為伺服器預設值。這會使 Liberty 伺服器的預設 SSLContext,成為程序的預設 SSLContext。不論何者讓 Java API 呼叫了 SSLContext.getDefault(),方法就會傳回 Liberty SSLContext。同樣情況適用於 SSLSocketFactory.getDefault() Java API,而會傳回預設 SSLContext 中的預設 Socket Factory。
可以改為啟用 SSL 通訊,作法是在 server.xml 檔中新增 transportSecurity-1.0 Liberty 特性。
<featureManager> <feature>transportSecurity-1.0</feature> </featureManager>
transportSecurity-1.0 特性會取代 ssl-1.0 特性,並多了 ssl-1.0 特性未隨附的功能。您可以指定 SSL 配置來作為出埠預設值,以及在 SSL 配置上設定過濾器,以便根據目的地主機和埠,將該 SSL 配置用於某項出埠 SSL 呼叫。如需出埠 SSL 選項的相關資訊,請參閱配置用於出埠通訊的 SSL 設定和 SSL 配置的出埠過濾器。
當啟用 transportSecurity-1.0 特性時,Liberty 伺服器會設定一個使用 Java 安全內容 ssl.SocketFactory.provider 的自訂 SSL Socket Factory。當啟用 transportSecurity-1.0 特性時,會自動設定這個安全內容。在您使用 transportSecurity-1.0 特性時,程序的預設 SSLContext 會成為 Java Secure Socket Extension (JSSE) 的預設 SSLContext。當呼叫 SSLContext.getDefault() 時,會傳回 JSSE 的預設環境定義 SSLContext。當呼叫 SSLSocketFactory.getDefault() 時,會傳回 SSLSocketFactory,這個 SSLSocketFactory 是基於使用 Liberty SSLContext 的 Liberty 伺服器自訂 Socket Factory 提供者。
只有在指定 transportSecurity-1.0 特性時,才會將 outboundSSLRef 屬性和 outboundConnection 元素用於出埠 SSL 連線。如果指定 ssl-1.0 特性,而未指定 transportSecurity-1.0,則會忽略 outboundSSLRef 屬性和 outboundConnection 元素。
註: 由於 JDK 的本質,如果您從 ssl-1.0 特性變更為 transportSecurity-1.0 特性,或從 transportSecurity-1.0 特性變更為 ssl-1.0 特性,則必須重新啟動 Liberty 伺服器,才能使用該特性的完整功能。- 新增金鑰儲存庫服務物件項目到 server.xml 檔中。
keyStore 元素稱為 defaultKeyStore,其中含有金鑰儲存庫密碼。
這個密碼可以用明碼或編碼的方式來輸入。securityUtility encode 選項可用來進行密碼編碼。
最低配置中的 SAF 金鑰環範例:<keyStore id="defaultKeyStore" password="yourPassword" />
<keyStore id="defaultKeyStore" location="safkeyring:///WASKeyring" type="JCERACFKS" password="password" fileBased="false" readOnly="true" />
您必須先設定 RACF® 金鑰環,才能配置它們以供 Liberty 伺服器使用。伺服器不會建立憑證並將其新增至 RACF。
您也可以延伸最低 SSL 配置的單一金鑰儲存庫項目來包括位置和類型。<keyStore id="defaultKeyStore" location="myKeyStore.p12" password="yourPassword" type="PKCS12"/>
此配置是建立 SSL 配置的最小需求。如果在 SSL 起始設定期間,金鑰儲存庫和憑證不存在,伺服器就會在這項配置中建立它們。所提供的密碼長度必須至少 6 個字元。金鑰儲存庫會假設為 JKS 金鑰儲存庫,其稱為 key.jks,並位於伺服器的 home/resources/security 目錄中。如果該檔案不存在,伺服器會為您建立。如果伺服器建立該金鑰儲存庫檔,就也會在其中建立憑證。該憑證是有效期限為 365 天的自簽憑證,其 subjectDN 的 CN 值是執行伺服器機器的主機名稱,並具有簽章演算法 SHA256withRSA。
註: 如果使用群體控制器不切實際(可能是只有一或兩部 Liberty 伺服器),則可以使用自簽憑證,來限制能連接至 Liberty 成員伺服器的用戶端數目。建議在 Liberty 伺服器前端使用 IHS 伺服器,在此情況下,可以使用適當的 CA 簽章憑證連同 CN 白名單,來控制哪些用戶端可以連接至 IHS。對於 IHS 與 Liberty 成員伺服器之間的授信通道,可利用自簽憑證來維護。
次主題
- SSL 配置屬性
SSL 配置中所包含的屬性,可用來控制 Liberty 上伺服器 SSL 傳輸層的行為。這個主題疊代 SSL 配置所有可用的設定。 - 金鑰儲存庫
「Java™ 金鑰儲存庫 (JKS)」是 Liberty 唯一能夠建立的金鑰儲存庫類型。 Liberty 中對於其他金鑰儲存庫類型的支援取決於基礎「Java 執行時期環境 (JRE)」所支援的項目。 - 針對 Liberty 啟用 IBM JCE Hybrid Provider
對於設計成使用加密硬體和處理器的應用程式,當這些硬體和處理器可用時,該應用程式會使用它們,當無法可用時,該應用程式會使用 IBM® JCE Hybrid Provider IBMJCEHYBRID,在沒有這些加密特性的情況下繼續作業。 當使用 IBMJCEHYBRID 提供者時,應用程式仍可以使用 JCE 提供者,且無需包含在加密特性不可用之時的複雜錯誤處理。 - Liberty 中的 SSL 預設值
指定 Liberty 中的預設 SSL 憑證、金鑰儲存庫和配置。 配置用於出埠通訊的 SSL 設定
您可以在 Liberty 中配置用於出埠通訊的 SSL 設定。SSL 配置的出埠過濾器
您可以配置 Liberty,以便使用出埠 SSL 過濾器,將多項 SSL 配置用於指向某部主機(或主機與埠)的出埠連線。

檔名:twlp_sec_ssl.html