通过使用客户端设备证书身份验证功能,您可以为客户端系统设置对适用于 Linux 的 Omnissa Horizon Client 的证书身份验证。Omnissa Unified Access Gateway 可对客户端系统进行身份验证。通过 SoftHSM2 库,可将证书分发和部署到客户端系统。成功完成设备身份验证后,用户仍必须执行用户身份验证。
必备条件
此功能存在以下要求:
- Unified Access Gateway 2.6 或更高版本
- 客户端系统配有 Unified Access Gateway 接受的根证书颁发机构 (CA) 证书
有关配置 Unified Access Gateway 的信息,请参阅 Unified Access Gateway 文档。
设置 Linux 客户端系统以进行设备证书身份验证
要设置设备证书身份验证,必须执行以下概要任务:
- 在系统上安装 SoftHSM2 库。
- 为 SoftHSM2 库创建加密令牌。
- 准备设备证书以及公钥和私钥。
- 将证书和密钥文件导入到 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](https://github.com/opendnssec/SoftHSMv2.git) -
从克隆的源代码编译、配置并安装 SoftHSM2 库。
**注意:**Horizon Client 会安装自己的 OpenSSL 库,并且还会使用链接到 SoftHSM2 的 OpenSSL 库。为避免在运行时发生冲突,请确保将 SoftHSM2 链接到由 Horizon Client 安装的同一 OpenSSL 库。
在以下命令示例中,<path to OpenSSL library> 应包含“include”和“lib”路径。
cd SoftHSMv2/ sh autogen.sh ./configure --with-crypto-backend=openssl --with-openssl=<path to OpenSSL library> make sudo make install
-
-
-
为 SoftHSM2 库创建加密令牌。
默认情况下,SoftHSM2 具有一个令牌插槽。在第一个插槽中初始化令牌时,会自动添加第二个插槽。在每个插槽中初始化新令牌时,都会添加后续插槽。
-
运行该命令以创建令牌。
softhsm2-util --init-token --slot 0 --label "<your token label>" -
记下令牌创建命令返回的插槽 ID。稍后在将 X.509 设备证书和密钥文件导入到 SoftHSM2 数据库时,您将需要此插槽 ID。
-
-
准备 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 中获取的值。 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。 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 库以供 Horizon Client 使用。
sudo mkdir /usr/lib/omnissa/horizon/pkcs11 sudo ln -s /usr/local/lib/softhsm/libsofthsm2.so /usr/lib/omnissa/horizon/pkcs11/libsofhsm2.so
FIPS 合规模式支持
如果要在符合联邦信息处理标准 (Federal Information Processing Standard, 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 库。
此页面对您有帮助吗?