Skip to main content

2026 年 8 月 24 日

客户端设备证书身份验证要求 <meta name="id" content="client-cert">

通过使用客户端设备证书身份验证功能,您可以为客户端系统设置对适用于 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 的文档。

  1. 使用以下方法之一在 Linux 客户端系统上安装 SoftHSM2 库。

    1. 方法 1:使用软件包管理工具。

      例如,在 Ubuntu 系统上,您可以运行以下命令。

      sudo apt-get install softhsm2
      
    2. 方法 2:手动编译并安装 SoftHSM2 库。

      1. 将 SoftHSM2 源代码存储库克隆到系统。

        git clone [https://github.com/opendnssec/SoftHSMv2.git](https://github.com/opendnssec/SoftHSMv2.git)
        
      2. 从克隆的源代码编译、配置并安装 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
        
        
  2. 为 SoftHSM2 库创建加密令牌。

    默认情况下,SoftHSM2 具有一个令牌插槽。在第一个插槽中初始化令牌时,会自动添加第二个插槽。在每个插槽中初始化新令牌时,都会添加后续插槽。

    1. 运行该命令以创建令牌。

      softhsm2-util --init-token --slot 0 --label "<your token label>"
      
    2. 记下令牌创建命令返回的插槽 ID。稍后在将 X.509 设备证书和密钥文件导入到 SoftHSM2 数据库时,您将需要此插槽 ID。

  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 文件。将 <your token label> 和 <slot ID> 替换为您在步骤 2 中获取的值。

      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/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 库。

此页面对您有帮助吗?

对本主题提供反馈

本主题对您有帮助吗?

请勿填写任何个人信息或机密信息。

正在生成链接…