使用用戶端裝置憑證驗證功能時,您可以為用戶端系統設定對 Linux 版 Horizon Client 的憑證驗證。Unified Access Gateway 會驗證用戶端系統。SoftHSM2 程式庫會管理用於用戶端系統之憑證的散發和部署。裝置驗證成功後,使用者仍必須執行使用者驗證。
先決條件
這項功能具有下列的需求。
- Unified Access Gateway 2.6 或更新版本
- 用戶端系統已配備 Unified Access Gateway 接受的根憑證授權機構 (CA) 憑證
如需設定 Unified Access Gateway 的相關資訊,請參閱 Unified Access Gateway 說明文件。
設定用於裝置憑證驗證的 Linux 用戶端系統
若要設定裝置憑證驗證,您必須執行下列高階工作:
- 在系統上安裝 SoftHSM2 程式庫。
- 為 SoftHSM2 程式庫建立密碼編譯 Token。
- 準備裝置憑證和公開金鑰與私密金鑰。
- 將憑證和金鑰檔案匯入至 SoftHSM2 資料庫。
- 設定 SoftHSM2 程式庫以供 Horizon Client 使用。
下列程序提供在一般 Linux 用戶端系統上完成設定的指導方針。根據您的 Linux 發行版,特定步驟可能有所不同。
備註: 執行 Becrypt Paradox 的精簡型用戶端上也支援裝置憑證驗證。如需設定資訊,請參閱 Becrypt Paradox 的說明文件。
- 使用下列其中一種方法,在 Linux 用戶端系統上安裝 SoftHSM2 程式庫。
- 方法 1:使用套件管理工具。
例如,在 Ubuntu 系統上,您可以執行下列命令。
sudo apt-get install softhsm2
- 方法 2:手動編譯和安裝 SoftHSM2 程式庫。
- 將 SoftHSM2 原始程式碼存放庫複製至系統。
git clone https://github.com/opendnssec/SoftHSMv2.git
- 從複製的原始程式碼編譯、設定和安裝 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
- 將 SoftHSM2 原始程式碼存放庫複製至系統。
- 方法 1:使用套件管理工具。
- 為 SoftHSM2 程式庫建立密碼編譯 Token。
依預設,SoftHSM2 會有一個 Token 插槽。當您在第一個插槽中初始化 Token 時,即會自動新增第二個插槽。當您在每個插槽中初始化新的 Token 時,系統會新增後續的插槽。
- 執行命令以建立 Token。
softhsm2-util --init-token --slot 0 --label "<your token label>"
- 記下 Token 建立命令所傳回的插槽識別碼。稍後將 x.509 裝置憑證和金鑰檔案匯入 SoftHSM2 資料庫時,將需要此插槽識別碼。
- 執行命令以建立 Token。
- 準備 x.509 裝置憑證和公開金鑰與私密金鑰。
- 取得包含私密金鑰、PFX 格式的裝置憑證。
- 將 PFX 檔案轉換為 PEM 格式的金鑰檔案。例如,下列命令會將 client.pfx 轉換為 client-keys.pem。
openssl pkcs12 -in client.pfx -nocerts -nodes -out client-keys.pem
- 將 PEM 金鑰檔案轉換為 PKCS8 金鑰檔案。
openssl pkcs8 -in client-keys.pem -topk8 -nocrypt -out client-keys.pk8
- 將 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
- 將 x.509 憑證和金鑰檔案匯入至 SoftHSM2 憑證資料庫。
- 將金鑰檔案匯入至 SoftHSM2 資料庫。
例如,下列命令會匯入 client-key.pk8 檔案。使用您在步驟 2 中取得的值取代 <您的 Token 標籤> 和 <插槽識別碼>。
softhsm2-util --import client-key.pk8 --token "<your token label>" --slot <slot ID> --label "client" --id 0001
- 將 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
- 確認 x.509 憑證、公用金鑰和私密金鑰均儲存在 SoftHSM2 資料庫中。
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -p <softhsm2-pin> --token-label "<your token label>" --list-objects
- 將金鑰檔案匯入至 SoftHSM2 資料庫。
- 設定 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 程式庫。