Secure Sockets Layer 用戶端憑證鑑別

想要使用 Secure Socket Layer (SSL) 通訊協定來建立伺服器安全連接的用戶端軟體,會利用 SSL 通訊協定或稱為「傳輸層安全 (TLS)」的加強通訊協定來起始,以 SSL 憑證來執行 SSL 信號交換。 個人憑證可以代表伺服器,也可以代表特定用戶端,並由「憑證管理中心 (CA)」簽署,以確保正確識別個人憑證。

SSL 可確保管理者具有用來簽署個人憑證的 CA 簽章者憑證,且它同時儲存在用戶端及/或伺服器信任儲存庫中。 在使用 SSL 憑證進行連線信號交換期間,會進行 SSL 用戶端憑證鑑別。

在此程序期間必須發生下列事件:
  • 伺服器端必須判斷是否要進行用戶端鑑別。 如果使用「交互 ORB 通訊協定 (IIOP)」,則必須在伺服器的 SSL 配置和 Common Secure Interoperability 第 2 版 (CSIv2) 配置中啟用用戶端鑑別。
  • CSIv2 配置必須在廣域安全中進行,而不是在安全網域中。
  • 用戶端的簽章者憑證必須從用戶端的金鑰儲存庫擷取,並新增至伺服器的信任儲存庫。
  • 伺服器的簽章者憑證必須擷取自伺服器的金鑰儲存庫,並新增至用戶端的信任儲存庫。

配置 WebSphere 伺服器以進行用戶端鑑別

如果伺服器端要求用戶端傳送憑證,則會進行用戶端憑證鑑別。 可以配置 WebSphere® 伺服器,以在 SSL 配置上進行用戶端憑證鑑別。 當 WebSphere 只作為伺服器而不作為用戶端時,此配置會影響它。

如果要使用管理主控台在 SSL 配置上配置用戶端憑證鑑別,請執行下列動作:
  1. 按一下 安全 > SSL 憑證和金鑰管理 > SSL 配置
  2. 選取 SSL 配置。
  3. 在「其他內容」下,選取「保護品質 (QoP)」設定。
  4. 在「用戶端鑑別」之下,選取 Required
  5. 按一下 OK 以儲存變更。
附註: 您也可以使用 modifySSLConfig 指令並將 -clientAuthentication 旗標設為 true 來啟用用戶端鑑別。 如需這個指令的相關資訊,請參閱 AdminTask 物件的 SSLConfigCommands 指令群組。
.
如果要使用管理主控台在 CSIv2 入埠連線上配置用戶端憑證鑑別,請執行下列動作:
  1. 按一下安全 > 廣域安全
  2. 在「RMI/IIOP 安全」之下,選取 CSIv2 inbound communications
  3. 在 CSIv2 「傳輸層」區段中,並在「用戶端憑證鑑別」之下,選取 Required
  4. 按一下 OK 以儲存變更
附註: 您也可以使用 configureCSIInbound 指令,並將 -clientCertAuth 旗標設為 必要 ,以在 CSIv2上啟用用戶端鑑別。 請閱讀 AdminTask 物件的 SecurityConfigurationCommands 指令群組,以取得這個指令的相關資訊。

如果用戶端已設定用戶端鑑別,則必須將用戶端的簽章者憑證新增至伺服器的信任儲存庫。 當您在憑證檔中具有來自用戶端的憑證時,它可以新增至伺服器的信任儲存庫。

如果要使用管理主控台,將簽章者新增至伺服器的信任儲存庫,請執行下列動作:
  1. 按一下 安全 > SSL 憑證和金鑰管理 > 金鑰儲存庫和憑證
  2. 選取針對用戶端鑑別所配置的信任儲存庫。
  3. 在其他內容下,選取簽章者憑證。
  4. 按一下 Add
  5. 在別名欄位中,輸入用來儲存憑證的別名。
  6. 在檔名方框中,鍵入憑證檔的完整路徑。
  7. 按一下 OK 以儲存變更
附註: 您也可以使用 addSignerCertificate 指令,將簽章者新增至伺服器的信任儲存庫。 如需這個指令的相關資訊,請閱讀 AdminTask 物件的 SignerCertificateCommands 指令群組。
附註: 如果您在叢集環境中使用用戶端鑑別,則必須針對叢集中伺服器所在的每一個節點配置用戶端鑑別。

設定用戶端進行用戶端鑑別

用戶端:

管理用戶端、小型用戶端或純用戶端必須在其金鑰儲存庫中具有個人憑證。 安裝 WebSphere Application Server 時所建立的 WebSphere 用戶端預設金鑰儲存庫中已有個人憑證。 您可以在 ssl.client.props 檔的 com.ibm.ssl.keyStore 內容中找到這個金鑰儲存庫。 用戶端金鑰儲存庫不是由 WebSphere Application Server管理,因此金鑰管理公用程式 (iKeyman) 或 Java™ keytool 公用程式可用來將憑證擷取至憑證檔。

若要使用 iKeyman 擷取憑證,請執行下列動作:
  1. 啟動 iKeyman。
  2. 選取 金鑰資料庫檔 > 開啟
  3. 輸入金鑰儲存庫檔的路徑。 您可以從 ssl.client.props 檔案取得此檔案。
  4. 按一下 OK
  5. 輸入金鑰儲存庫的密碼,然後按一下 OK
  6. 在個人憑證下,選取用戶端預設憑證。
  7. 輸入憑證檔的路徑和檔名,然後按一下 OK
重要事項: 最佳作法是個別管理伺服器金鑰儲存庫和用戶端金鑰儲存庫。 不過,如果您想要在具有伺服器金鑰儲存庫的 adminconsole 中管理用戶端金鑰儲存庫,則可以建立金鑰儲存庫配置來指向本端用戶端金鑰儲存庫。 請注意,憑證有效期限監視器不會監視用戶端金鑰儲存庫。

包含所擷取憑證的檔案可用來將簽章者新增至伺服器的信任儲存庫。 請遵循 配置 WebSphere 伺服器以進行用戶端鑑別 小節中的步驟,將該簽章者新增至伺服器信任儲存庫。

如果透過 IIOP 進行通訊,則必須在 sas.client.props 檔中設定下列內容。
  • 啟用 SSL:
    	com.ibm.CSI.performTransportAssocSSLTLSSupported=true
    	com.ibm.CSI.performTransportAssocSSLTLSRequired=false 
  • 在訊息層停用用戶端鑑別:
    	com.ibm.CSI.performClientAuthenticationRequired=false
    	com.ibm.CSI.performClientAuthenticationSupported=false 
  • 在傳輸層啟用用戶端鑑別 (支援但非必要):
     com.ibm.CSI.performTLClientAuthenticationRequired=false
    	com.ibm.CSI.performTLClientAuthenticationSupported=true 

小型用戶端和純用戶端可能不會使用 WebSphere Application Server SSL 內容檔 ssl.client.props。 它們很可能使用 Java 系統內容來設定用戶端金鑰儲存庫和信任儲存庫。 伺服器的簽章者憑證必須新增至以 java.net.ssl.trustStore 系統內容指定的信任儲存庫。 Keytool 或 iKeyman 可用來新增簽章者憑證。 簽章者必須從 javax.net.ssl.keyStore 系統內容所指定金鑰儲存庫中的個人憑證擷取,並新增至伺服器的信任儲存庫。

例如:
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
javax.net.ssl.keyStoreType
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.trustStoreType

充當用戶端的伺服器:

用戶端可以是作為用戶端的 WebSphere 伺服器。 如果是的話,請判斷哪一項 SSL 配置是用來作為通訊的用戶端,擷取其憑證的簽章者,並將它新增至伺服器端信任儲存庫。 建議使用主要憑證簽章者。

如果要使用管理主控台來擷取主要憑證,請執行下列動作:
  1. 按一下安全> SSL 憑證和金鑰管理> 金鑰儲存庫和憑證。
  2. 在「金鑰儲存庫使用情形」下拉清單下,選取 Root certificate keystore
  3. 選取 DmgrDefaultRootStore (適用於網路部署伺服器) 或 NodeDefaultRootStore (適用於應用程式伺服器)。
  4. 在「其他內容」之下,選取 Personal certificates
  5. 選取預設主要憑證 (通常稱為 root) ,然後按一下 Extract
  6. 在憑證檔名方框中,鍵入要在其中保留憑證之檔案的完整路徑。
  7. 按一下 OK 以儲存。
附註: 您也可以使用 extractCertificate 指令來擷取主要憑證。 如需這個指令的相關資訊,請閱讀 AdminTask 物件的 PersonalCertificateCommands 指令群組。

所建立的憑證檔可以隨附於伺服器端,並新增至伺服器的信任儲存庫。

當伺服器作為用戶端時,用戶端伺服器需要來自目的地伺服器的簽章者。 可以使用簽章者憑證 從埠擷取 選項來擷取簽章者。

如果要使用管理主控台從埠擷取簽章者,請執行下列動作:
  1. 按一下 安全 > SSL 憑證和金鑰管理 > 金鑰儲存庫和憑證
  2. 從集合中選取伺服器的信任儲存庫。
  3. 在「其他內容」之下,選取 Signer certificates
  4. 按一下 Retrieve from port
  5. 輸入目的地主機名稱和目的地埠名稱。
  6. 輸入憑證的別名。
  7. 按一下 Retrieve signer information
  8. 按一下 OK 以儲存。

您也可以使用 retrieveSignerFromPort 指令,從埠擷取簽章者。 如需這個指令的相關資訊,請閱讀 AdminTask 物件的 SignerCertificateCommands 指令群組。

設定瀏覽器以進行用戶端鑑別:

當配置 WebSphere Application Server 以進行用戶端憑證鑑別,並嘗試從瀏覽器存取伺服器時,瀏覽器必須具有用於用戶端憑證鑑別的憑證。 如果伺服器的預設 SSL 配置已修改為啟用用戶端憑證鑑別,則您無法登入管理主控台。

您可以使用管理主控台來建立瀏覽器的憑證。 您必須先建立金鑰儲存庫,然後建立鏈結憑證。 建立憑證之後,請使用瀏覽器的指示來匯入憑證。 瀏覽器需要新增鏈的每一個部分以驗證憑證,因此必須擷取主要憑證並新增至瀏覽器。 如需擷取主要憑證的相關資訊,請遵循 設定用戶端以進行用戶端鑑別 小節中的指示。

如果要使用管理主控台來建立金鑰儲存庫,請執行下列動作:
  1. 按一下 安全 > SSL 憑證和金鑰管理 > 金鑰儲存庫和憑證
  2. 按一下 New
  3. 輸入金鑰儲存庫的名稱。
  4. 輸入金鑰儲存庫檔案的完整路徑。
  5. 輸入金鑰儲存庫的密碼,然後確認。
  6. 按一下 OK 以儲存。
如果要使用管理主控台來建立鏈結憑證,請執行下列動作:
  1. 按一下 安全 > SSL 憑證和金鑰管理 > 金鑰儲存庫和憑證
  2. 選取您先前建立的金鑰儲存庫。
  3. 在「其他內容」之下,按一下 Personal certificates
  4. 在「建立」按鈕下的下拉清單中,選取 Chained Certificate
  5. 輸入憑證的別名。
  6. 提供憑證的通用名稱。 名稱是主體 DN 的 CN= 部分。
  7. 您可以在任何其餘欄位中輸入資訊,以建置鏈結憑證的主體 DN。
  8. 按一下 OK 以儲存。

您也可以使用 createKeyStore 指令來建立金鑰儲存庫。 請閱讀 AdminTask 物件的 KeyStoreCommands 指令群組,以取得這個指令的相關資訊。

您也可以使用 createChainedCertificate 指令來建立鏈結憑證。 如需這個指令的相關資訊,請閱讀 AdminTask 物件的 PersonalCertificateCommands 指令群組。

附註: 當啟用用戶端憑證鑑別時,就可以依照下一節的討論來執行 Web 憑證鑑別。

Web 憑證鑑別

當配置 Java 2 Platform Enterprise Edition (J2EE) Web 模組來進行用戶端憑證鑑別時,可以在該模組上執行憑證基本鑑別。 這可讓使用者使用憑證登入 Web 模組進行鑑別,並將該憑證從登錄對映至使用者。

啟用 Web 憑證鑑別需要在模組安裝所在的伺服器上配置伺服器的 SSL 配置,以進行用戶端憑證鑑別。

伺服器端決定要進行用戶端鑑別。 如需如何配置用戶端鑑別的相關資訊,請參閱 配置 WebSphere 伺服器以進行用戶端鑑別 一節。 用戶端必須具有伺服器中的簽章者,才能新增至用戶端信任儲存庫。 如需相關資訊,請參閱 設定用戶端進行用戶端鑑別 一節。

web.xml 檔的 login-config 區段中, Web 模組的 web.xml 檔必須將鑑別方法設為 CLIENT-AUTH:

<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>

憑證必須對映至登錄中的使用者,否則您無法登入該 Web 模組。

對於 localOS 使用者登錄,憑證主體 DN 的 CN 值必須對映至本端 OS 使用者登錄中的使用者。 例如,如果憑證主體 DN 是 CN=tester , o = ibm , c = us,則 tester 是在本端使用者登錄中搜尋的使用者。 如果該使用者不存在於本端登錄中,則鑑別會失敗。

「輕量型目錄存取通訊協定 (LDAP)」使用者登錄提供將憑證對映至使用者身分的其他選項。 LDAP 中的預設憑證對映模式用於 LDAP 登錄中的項目與憑證中的主體 DN 之間完全相符的 DN。 例如,如果憑證 DN 是 CN=user1,o=ibm,c=us,則 LDAP 登錄中必須有一個具有該確切值的項目。 LDAP 使用者登錄也有一個憑證過濾選項,可根據 LDAP 儲存庫中的項目來比對憑證主體 DN 的特定部分。 如需 LDAP 憑證對映的詳細資料,請閱讀 輕量型目錄存取通訊協定儲存庫配置設定

在聯合儲存庫配置中,依預設,檔案型儲存庫不支援用戶端憑證登入。 如果要在檔案型儲存庫中啟用憑證對映支援,請遵循在聯合儲存庫檔案型儲存庫中啟用用戶端憑證登入支援主題中的程序。

聯合儲存庫 LDAP 登錄支援憑證對映。 它使用 LDAP 使用者登錄所使用的相同對映規則和內容。

如果自訂登錄實作 mapCertificate () 方法,則自訂使用者登錄可以將憑證對映至使用者。