使用用戶端裝置憑證驗證功能時,您可以為用戶端系統設定對 Linux 版 Horizon Client 的憑證驗證。Unified Access Gateway 會驗證用戶端系統。SoftHSM2 程式庫會管理用於用戶端系統之憑證的散發和部署。裝置驗證成功後,使用者仍必須執行使用者驗證。

先決條件

這項功能具有下列的需求。

  • Unified Access Gateway 2.6 或更新版本
  • Horizon 7 (7.5 版) 或更新版本
  • 用戶端系統已配備 Unified Access Gateway 接受的根憑證授權機構 (CA) 憑證

如需設定 Unified Access Gateway 的相關資訊,請參閱 Unified Access Gateway 說明文件

設定用於裝置憑證驗證的 Linux 用戶端系統

若要設定裝置憑證驗證,您必須執行下列高階工作:

  • 在系統上安裝 SoftHSM2 程式庫。
  • 為 SoftHSM2 程式庫建立密碼編譯 Token。
  • 準備裝置憑證和公開金鑰與私密金鑰。
  • 將憑證和金鑰檔案匯入至 SoftHSM2 資料庫。
  • 設定 SoftHSM2 程式庫以供 Horizon Client 使用。

下列程序提供在一般 Linux 用戶端系統上完成設定的指導方針。根據您的 Linux 發行版,特定步驟可能有所不同。

備註: 執行 Becrypt Paradox 的精簡型用戶端上也支援裝置憑證驗證。如需設定資訊,請參閱 Becrypt Paradox 的說明文件。
  1. 使用下列其中一種方法,在 Linux 用戶端系統上安裝 SoftHSM2 程式庫。
    1. 方法 1:使用套件管理工具。
      例如,在 Ubuntu 系統上,您可以執行下列命令。
      sudo apt-get install softhsm2
    2. 方法 2:手動編譯和安裝 SoftHSM2 程式庫。
      1. 將 SoftHSM2 原始程式碼存放庫複製至系統。
        git clone https://github.com/opendnssec/SoftHSMv2.git
      2. 從複製的原始程式碼編譯、設定和安裝 SoftHSM2 程式庫。
        備註: Horizon Client 會安裝自己的 OpenSSL 程式庫,也會使用連結至 SoftHSM2 的 OpenSSL 程式庫。若要避免在執行階段期間發生衝突,請確定您已將 SoftHSM2 連結至 Horizon Client 所安裝的相同 OpenSSL 程式庫。

        在下列命令範例中,<指向 OpenSSL 程式庫的路徑> 應包含「include」和「lib」路徑。

        cd SoftHSMv2/
        sh autogen.sh
        ./configure --with-crypto-backend=openssl --with-openssl=<path to OpenSSL library>
        make
        sudo make install
        
  2. 為 SoftHSM2 程式庫建立密碼編譯 Token。

    依預設,SoftHSM2 會有一個 Token 插槽。當您在第一個插槽中初始化 Token 時,即會自動新增第二個插槽。當您在每個插槽中初始化新的 Token 時,系統會新增後續的插槽。

    1. 執行命令以建立 Token。
      softhsm2-util --init-token --slot 0 --label "<your token label>"
    2. 記下 Token 建立命令所傳回的插槽識別碼。稍後將 x.509 裝置憑證和金鑰檔案匯入 SoftHSM2 資料庫時,將需要此插槽識別碼。
  3. 準備 x.509 裝置憑證和公開金鑰與私密金鑰。
    1. 取得包含私密金鑰、PFX 格式的裝置憑證。
    2. 將 PFX 檔案轉換為 PEM 格式的金鑰檔案。例如,下列命令會將 client.pfx 轉換為 client-keys.pem
      openssl pkcs12 -in client.pfx -nocerts -nodes -out client-keys.pem
    3. 將 PEM 金鑰檔案轉換為 PKCS8 金鑰檔案。
      openssl pkcs8 -in client-keys.pem -topk8 -nocrypt -out client-keys.pk8
    4. 將 PFX 檔案轉換為 DER 格式的 x.509 憑證。
      openssl pkcs12 -in client.pfx -nokeys -nodes -out client-cert.pem
      openssl x509 -outform der -in client-cert.pem -out client-cert.der
  4. 將 x.509 憑證和金鑰檔案匯入至 SoftHSM2 憑證資料庫。
    1. 將金鑰檔案匯入至 SoftHSM2 資料庫。

      例如,下列命令會匯入 client-key.pk8 檔案。使用您在步驟 2 中取得的值取代 <您的 Token 標籤><插槽識別碼>

      softhsm2-util --import client-key.pk8 --token "<your token label>" --slot <slot ID> --label "client" --id 0001
    2. 將 x.509 憑證匯入 SoftHSM2 資料庫。

      例如,下列命令會匯入 client-cert.der 檔案。將 <softhsm2-pin> 取代為存取 SoftHSM2 資料庫所需的 PIN 碼。

      pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -p <softhsm2-pin> --write-object client-cert.der --type cert --id 0001
    3. 確認 x.509 憑證、公用金鑰和私密金鑰均儲存在 SoftHSM2 資料庫中。
      pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -p <softhsm2-pin> --token-label "<your token label>" --list-objects
  5. 設定 SoftHSM2 程式庫以供 Horizon Client 使用。
    sudo mkdir /usr/lib/vmware/view/pkcs11
    sudo ln -s /usr/local/lib/softhsm/libsofthsm2.so /usr/lib/vmware/view/pkcs11/libsofhsm2.so

FIPS 符合性模式支援

如果您想要在符合聯邦資訊處理標準 (FIPS) 的環境中使用裝置憑證驗證,請先完成啟用 FIPS 相容模式中所述的步驟。然後,執行上一節設定用於裝置憑證驗證的 Linux 用戶端系統中所述的設定程序,並進行下列修改。

若要使用 FIPS 符合性模式編譯 SoftHSM2 程式庫,請執行以下一系列的命令。
cd SoftHSMv2/
sh autogen.sh
./configure --with-crypto-backend=openssl --with-openssl=<path to OpenSSL library>  --enable-fips
make
sudo make install
備註: 如果您在編譯期間遇到遺失標頭問題,則可以從 www.openssl.org/source/ 下載 FIPS 相關標頭的原始程式碼。將標頭複製至 OpenSSL 程式庫的路徑中,然後重複命令順序,以使用 FIPS 符合性模式編譯 SoftHSM2 程式庫。