IBM Cloud Docs
使用相互 TLS

使用相互 TLS

「交互傳輸層安全 (mTLS)」鑑別可確保用戶端與伺服器之間雙向的資料流量安全且受信任。 它僅適用於「企業」或「安全」方案層次的客戶。

當配置 mTLS 時,只會授與存取權給具有對應用戶端憑證的要求。 當要求到達應用程式時,CIS 會回應用戶端憑證的要求。 如果用戶端無法呈現憑證,則不容許繼續執行要求。 否則,金鑰交換會繼續進行。

mTLS握手圖
mTLS握手圖

配置相互 TLS

依預設不會啟用相互 TLS。 這是一項額外服務,需要事先授權及啟用。

若要取得授權,您必須提交 IBM 支援案例。

為您的帳戶開啟 mTLS 之後,請採取下列步驟來啟用它。

  1. 導覽至 CIS 使用者介面中的 安全 頁面。
  2. 選取 相互 TLS 標籤。
  3. 按一下 啟用 以啟用特性。

mTLS 啟用後,就無法停用。

若要在IBM Cloud Internet Services UI 中為特定端點設定mTLS認證:

  1. 在「主要憑證」表格中,按一下 新增 以定義新的主要憑證。

  2. 將憑證內容貼至內容欄位,提供主要 CA 的名稱,並新增您要使用此憑證之端點的一或多個完整網域名稱 (FQDN)。 這些 FQDN 是用於應用程式原則所保護資源的主機名稱。 您必須將主要 CA 與受保護應用程式使用的 FQDN 相關聯。

  3. 按一下儲存

    如果您的區域除了使用主要憑證之外還使用中繼憑證,請上傳整個鏈。

  4. 在 MTLS 存取原則表格中,建立施行 mTLS 鑑別的新存取應用程式。 應用程式必須使用憑證上傳限制模式中相關聯的主機名稱來建置。 原則區段預設為施行 non_identity 的決策,以及符合任何有效憑證的 include 規則。

使用cURL進行測試

  1. 嘗試在沒有用戶端憑證的情況下對網站進行 curl 處理,以使用 mTLS 來測試網站。 此 curl 指令範例適用於具有 https://auth.example.com 的存取原則集的網站 example.com:

    curl -sv https://auth.example.com
    

    如果請求中沒有客戶端憑證,則會顯示「403 forbidden」回應,無法存取網站。

  2. 將用戶端憑證資訊新增至要求:

    curl -sv https://auth.example.com --cert example.pem --key key.pem
    

    當鑑別程序順利完成時,回應中會傳回 CF_Authorization Set-Cookie 標頭。

正在驗證相互 TLS

當您啟用此存取原則時,請遵循此驗證工作流程:

  1. 對來源的所有要求都會評估有效的用戶端憑證。 用戶端裝置會傳送用戶端 "hello"。 存取應用程式會回應 "hello" 及用戶端憑證的要求。
  2. 用戶端傳回有效憑證。
  3. 針對主要憑證管理中心完成用戶端鑑別信號交換。
  4. 對於鏈結,會檢查是否有過期憑證。 鏈結驗證適用於憑證驗證。
  5. 當主要憑證信任用戶端憑證時,會為用戶端產生已簽署的「JSON Web 記號 (JWT)」,容許要求及後續要求繼續進行。 如果要求沒有有效的用戶端憑證,則 403 Forbidden 會在回應中傳回。