Citrix Hypervisor

用于 Workload Balancing 的证书

Citrix Hypervisor 与 Workload Balancing 通过 HTTPS 进行通信。在 Workload Balancing 配置期间,该向导会自动创建一个自签名测试证书。此自签名测试证书允许 Workload Balancing 与 Citrix Hypervisor 建立 TLS 连接。默认情况下,Workload Balancing 将自动创建与 Citrix Hypervisor 的此 TLS 连接。在为创建此 TLS 连接而配置 Workload Balancing 期间,或者在此之后,您无需执行任何证书配置。

注意:

自签名证书是一个占位符,可用来方便实现 HTTPS 通信,该证书并非来自可信证书机构。为提高安全性,我们建议使用可信证书机构颁发的证书。

要使用其他证书颁发机构颁发的证书(例如商业机构颁发的证书),您必须将 Workload Balancing 和 Citrix Hypervisor 配置为使用该证书。

默认情况下,Citrix Hypervisor 在与 Workload Balancing 建立连接前都不会验证证书的身份。要将 Citrix Hypervisor 配置为对特定证书进行检查,请导出用于对证书进行签名的根证书。将该证书复制到 Citrix Hypervisor,并将 Citrix Hypervisor 配置为在与 Workload Balancing 建立连接时对其进行检查。在这种情况下,Citrix Hypervisor 相当于客户端,Workload Balancing 相当于服务器。

根据您的安全目标,可以:

 Citrix Hypervisor 在让 Workload Balancing 虚拟设备通过 TLS 连接到它之前检查特定证书是否存在。在这种情况下,真正的证书(具有私钥的证书)位于 Workload Balancing 服务器上。用于对其进行签名的证书位于 Citrix Hypervisor 池主服务器上。

注意:

证书验证是旨在防止意外连接的安全措施。Workload Balancing 证书必须满足严格的要求,否则证书验证不成功。证书验证失败时,Citrix Hypervisor 不允许进行连接。

要使证书验证成功,必须将这些证书存储在 Citrix Hypervisor 用来查找证书的特定位置。

将 Citrix Hypervisor 配置为验证自签名证书

可以将 Citrix Hypervisor 配置为在 Citrix Hypervisor 允许 Workload Balancing 建立连接之前验证 Citrix Workload Balancing 自签名证书的可信性。

重要:

要验证 Citrix Workload Balancing 自签名证书,必须使用其主机名连接到 Workload Balancing。要查找 Workload Balancing 主机名,请在虚拟设备上运行 hostname 命令。

要将 Citrix Hypervisor 配置为验证自签名证书,请完成以下步骤:

  1. 将自签名证书从 Workload Balancing 虚拟设备复制到池主服务器。Citrix Workload Balancing 自签名证书存储在 /etc/ssl/certs/server.pem 中。在池主服务器上运行以下命令:

    scp root@<wlb-ip>:/etc/ssl/certs/server.pem .
    <!--NeedCopy-->
    
  2. 如果收到指示无法确定 wlb-ip 真实性的消息,请键入 yes 以继续。

  3. 在系统提示时,输入 Workload Balancing 虚拟设备的 root 用户密码。将证书复制到当前目录。

  4. 安装证书。在复制了证书的目录中运行以下命令:

    xe pool-certificate-install filename=server.pem
    <!--NeedCopy-->
    
  5. 通过在池主服务器上运行以下命令来验证证书是否已正确安装:

    xe pool-certificate-list
    <!--NeedCopy-->
    

    如果正确安装了证书,此命令的输出中将包括所导出的根证书。运行此命令会列出所有已安装的 TLS 证书,其中包括已安装的证书。

  6. 要将主服务器的证书同步到池中的所有服务器,请在池主服务器上运行以下命令:

    xe pool-certificate-sync
    <!--NeedCopy-->
    

    在主服务器上运行 pool-certificate-sync 命令可将所有池服务器上的此证书以及证书吊销列表与主服务器进行同步。此操作可以确保池中的所有服务器使用相同证书。

    此命令无输出。但如果此命令未成功运行,下一个步骤将无法进行。

  7. 指示 Citrix Hypervisor 在连接到 Workload Balancing 虚拟设备前先验证证书。在池主服务器上运行以下命令:

    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    <!--NeedCopy-->
    

    提示:

    Tab 键可自动填充池的 UUID。

  8. (可选)要验证此过程是否已成功完成,请执行以下步骤:

    1. 要测试证书是否已同步到池中的其他服务器,请在这些主机上运行 pool-certificate-list 命令。

    2. 要测试是否已将 Citrix Hypervisor 设置为验证证书,请运行 pool-param-get 命令(带 param-name=wlb-verify-cert 参数)。例如:

      xe pool-param-get param-name=wlb-verify-cert uuid=uuid_of_pool
      <!--NeedCopy-->
      

将 Citrix Hypervisor 配置为验证证书颁发机构颁发的证书

可以将 Citrix Hypervisor 配置为验证由可信证书机构颁发的证书。

对于可信证书机构颁发的证书,Citrix Hypervisor 需要 .pem 格式(含公钥)的已导出证书或证书链(即中间证书和根证书)。

如果希望 Workload Balancing 使用可信证书机构颁发的证书,请执行以下任务:

  1. 从证书颁发机构获取签名证书

  2. 指定并应用新证书

  3. 将证书链导入池中

开始执行这些任务前,请确保:

  • 知道 Citrix Hypervisor 池主服务器的 IP 地址。

  • Citrix Hypervisor 可以解析 Workload Balancing 主机名。(例如,可以尝试从池主服务器的 Citrix Hypervisor 控制台对 Workload Balancing FQDN执行 ping 操作。)

从证书颁发机构获取签名证书

要从证书颁发机构获取证书,必须生成证书签名请求 (CSR)。在 Workload Balancing 虚拟设备上,创建一个私钥并使用该私钥生成 CSR。

指定公用名的指导原则

创建 CSR 时指定的公用名 (CN) 必须与 Workload Balancing 虚拟设备的 FQDN 完全一致。此外,该地址还必须与在连接 WLB 服务器对话框的地址框中指定的 FQDN 或 IP 地址一致。

要确保名称相符,请遵照以下指导原则之一来指定公用名:

  • 为证书的公用名指定与在连接 WLB 服务器对话框中指定的信息相同的信息。

    例如,如果 Workload Balancing 虚拟设备的名称为 wlb-vpx.yourdomain,请在连接 WLB 服务器中指定 wlb-vpx.yourdomain,并在创建 CSR 时提供 wlb-vpx.yourdomain 作为公用名。

  • 如果已使用 IP 地址将池连接到 Workload Balancing,请使用 FQDN 作为公用名,并将 IP 地址指定为使用者备用名称 (SAN)。但是,此方法可能并不适用于所有情况。

创建私钥文件

在 Workload Balancing 虚拟设备上,完成以下步骤:

  1. 创建私钥文件:

    openssl genrsa -des3 -out privatekey.pem 2048
    <!--NeedCopy-->
    
  2. 删除密码:

    openssl rsa -in privatekey.pem -out privatekey.nop.pem
    <!--NeedCopy-->
    

注意:

如果输入的密码不正确或者不一致,系统可能会显示一些消息,指出用户界面存在错误。您可以忽略此消息,并重新运行用于创建私钥文件的命令。

生成证书签名请求

在 Workload Balancing 虚拟设备上,完成以下步骤:

  1. 使用私钥创建证书签名请求 (CSR):

    openssl req -new -key privatekey.nop.pem -out csr
    <!--NeedCopy-->
    
  2. 按提示提供生成 CSR 所需的信息:

    Country Name(国家/地区名称)。输入所在国家/地区的 TLS 证书国家/地区代码。例如,CA 代表加拿大,JM 代表牙买加。可以在 Web 上查找 TLS 证书国家/地区代码的列表。

    State or Province Name (full name)(州名或省名(全称))。输入资源池所在的州或省。例如,马萨诸塞或艾伯塔。

    Locality Name(地点名称)。资源池所在城市的名称。

    组织名称。公司或组织的名称。

    Organizational Unit Name(组织单位名称)。输入部门名称。此字段为可选字段。

    常用名称。输入 Workload Balancing 服务器的 FQDN。此值必须与池用来连接到 Workload Balancing 的名称匹配。有关详细信息,请参阅指定公用名的指导原则

    电子邮件地址。生成证书时,此电子邮件地址将包括在证书中。

  3. 提供可选属性,或单击 Enter 键以跳过提供这些信息。

    CSR 请求保存在当前目录中并命名为 csr

  4. 通过在 Workload Balancing 设备控制台中运行以下命令,在控制台窗口中显示 CSR:

    cat csr
    <!--NeedCopy-->
    
  5. 复制整个 CSR 并使用它从证书颁发机构请求证书。

指定并应用新证书

使用此过程可指定 Workload Balancing 使用来自证书颁发机构的证书。此过程将安装根证书(如果可用)和中间证书。

要指定新证书,请完成以下步骤:

  1. 下载签名证书、根证书和(如果证书颁发机构有中间证书)证书颁发机构颁发的中间证书。

  2. 如果未将证书直接下载到 Workload Balancing 虚拟设备,请通过以下方法之一进行复制:

    • 在 Windows 计算机中,使用 WinSCP 或其他复制实用程序。

      对于主机名,可以输入 IP 地址并保留默认端口。通常情况下,用户名为 root,密码为您在配置期间设置的密码。

    • 从 Linux 计算机到 Workload Balancing 设备,使用 SCP 或其他复制实用程序。例如:

       scp root_ca.pem root@wlb-ip:/path_on_your_WLB
       <!--NeedCopy-->
      
  3. 在 Workload Balancing 虚拟设备上,将所有证书(根证书、中间证书(如果存在)和签名证书)合并成一个文件。您可以使用以下命令:

    cat signed_cert.pem intermediate_ca.pem root_ca.pem > server.pem
    <!--NeedCopy-->
    
  4. 使用 move 命令重命名现有证书和密钥:

    mv /etc/ssl/certs/server.pem /etc/ssl/certs/server.pem_orig
    mv /etc/ssl/certs/server.key /etc/ssl/certs/server.key_orig
    <!--NeedCopy-->
    
  5. 复制合并的证书:

    mv server.pem /etc/ssl/certs/server.pem
    <!--NeedCopy-->
    
  6. 复制以前创建的私钥:

    mv privatekey.nop.pem /etc/ssl/certs/server.key
    <!--NeedCopy-->
    
  7. 使该私钥仅可由 root 用户读取。使用 chmod 命令修复权限。

    chmod 600 /etc/ssl/certs/server.key
    <!--NeedCopy-->
    
  8. 重新启动 stunnel

    killall stunnel
    stunnel
    <!--NeedCopy-->
    

将证书链导入池中

获取证书后,将其导入到 Citrix Hypervisor 池主服务器中。同步池中的服务器以使用这些证书。然后可以配置 Citrix Hypervisor,使其在 Workload Balancing 每次连接服务器时验证证书的身份和有效性。

  1. 将签名证书、根证书和证书颁发机构颁发的中间证书(如果证书颁发机构有中间证书)复制到 Citrix Hypervisor 池主服务器中。

  2. 在池主服务器上安装根证书:

    xe pool-certificate-install filename=root_ca.pem
    <!--NeedCopy-->
    
  3. 如果适用,在池主服务器上安装中间证书:

    xe pool-certificate-install filename=intermediate_ca.pem
    <!--NeedCopy-->
    
  4. 通过在池主服务器上运行此命令来验证两种证书都已正确安装:

    xe pool-certificate-list
    <!--NeedCopy-->
    

    运行此命令后,将列出所有已安装的 TLS 证书。如果证书已成功安装,将显示在此列表中。

  5. 将池主服务器上的证书同步到池中所有服务器:

    xe pool-certificate-sync
    <!--NeedCopy-->
    

    在主服务器上运行 pool-certificate-sync 命令可将所有池服务器上的此证书以及证书吊销列表与池主服务器进行同步。此操作可以确保池中的所有服务器使用相同证书。

  6. 指示 Citrix Hypervisor 在连接到 Workload Balancing 虚拟设备前先验证证书。在池主服务器上运行以下命令:

    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    <!--NeedCopy-->
    

    提示:

    按 Tab 键可自动填充池的 UUID。

  7. 如果在启用证书验证之前,在连接 WLB 对话框中指定了 IP 地址,系统可能会提示您将池重新连接到 Workload Balancing。

    请在连接 WLB 对话框的地址框中为 Workload Balancing 设备指定与在证书公用名中显示的完全相同的 FQDN。输入 FQDN 以确保公用名与 Citrix Hypervisor 用于连接的名称一致。

故障排除

  • 如果在配置证书验证后池无法连接到 Workload Balancing,请检查在关闭证书验证的情况下池能否连接。您可以使用命令 xe pool-param-set wlb-verify-cert=false uuid=uuid_of_pool 禁用证书验证。如果在关闭验证功能的情况下可以进行连接,问题可能出在证书配置。如果不能连接,则问题可能出在 Workload Balancing 凭据或网络连接。

  • 一些商业证书颁发机构提供多种工具来验证证书安装的正确性。如果上述过程无法帮助解决问题,可以考虑运行这些工具。如果这些工具要求指定 TLS 端口,请指定端口 8012 或者在 Workload Balancing 配置期间设置的端口。

  • 如果 WLB 选项卡显示连接错误,则证书公用名与 Workload Balancing 虚拟设备的名称之间可能会发生冲突。Workload Balancing 虚拟设备名称和证书的公用名必须完全匹配。

有关详细信息,请参阅故障排除

用于 Workload Balancing 的证书