用于工作负载平衡的证书

Last published : Oct 07, 2026
XenServer® 和工作负载平衡通过 HTTPS 进行通信。在工作负载平衡配置期间,向导 会自动创建一个自签名测试证书。此自签名测试证书允许工作负载平衡 与 XenServer 建立 TLS 连接。默认情况下,工作负载平衡会自动与 XenServer 建立此 TLS 连接。 您无需在配置工作负载平衡期间或之后执行任何证书配置,即可让工作负载平衡 创建此 TLS 连接。
注意:
自签名证书是一个占位符,用于促进 HTTPS 通信,并且它不是来自受信任的证书 颁发机构。为了增强安全性,我们建议使用由受信任的证书颁发机构签名的证书。
要使用来自其他证书颁发机构的证书,例如来自商业机构的签名证书,您必须 配置工作负载平衡和 XenServer 以使用它。
默认情况下,XenServer 在建立与工作负载平衡的连接之前会验证证书的身份。 要配置 XenServer 检查特定证书,请导出用于签署该证书的根证书。 将证书复制到 XenServer,并配置 XenServer 在建立与工作负载平衡的连接时检查该证书。 在此场景中,XenServer 充当客户端,工作负载平衡充当服务器。
根据您的安全目标,您可以选择:
注意:
证书验证是一种旨在防止不必要连接的安全措施。工作负载平衡 证书必须满足严格要求,否则证书验证将不会成功。当证书 验证失败时,XenServer 不会允许连接。
为了使证书验证成功,您必须将证书存储在 XenServer 预期 找到证书的特定位置。

自动证书导入

在 XenCenter® 2025.1 及更高版本以及工作负载平衡 8.4.0 及更高版本中,XenCenter 会自动导入工作负载 平衡证书,在首次配置与工作负载平衡的连接时。
如果运行 XenCenter 的 Windows 系统无法访问 Workload Balancing 虚拟设备 – 例如,如果 Workload Balancing 和 XenServer 之间用于通信的端口被禁用,则无法进行自动证书导入,您必须 手动将 Workload Balancing 证书安装到您的池中。

配置 XenServer 以验证自签名证书

您可以配置 XenServer,使其在允许 Workload Balancing 连接之前,验证 XenServer Workload Balancing 自签名证书的真实性。
重要提示:
要验证 XenServer Workload Balancing 自签名证书,您必须使用其主机名连接到 Workload Balancing。要查找 Workload Balancing 主机名,请在虚拟设备上运行 hostname 命令。
要配置 XenServer 以验证自签名证书,请完成以下步骤:
  1. 将自签名证书从 Workload Balancing 虚拟设备复制到池协调器。XenServer Workload Balancing 自签名证书 存储在 /etc/ssl/certs/server.pem。在池协调器上运行以下 命令:
    scp root@<wlb-ip>:/etc/ssl/certs/server.pem wlb.pem
  2. 如果您收到一条消息,指出无法建立 wlb-ip 的真实性,请键入 yes 以继续。
  3. 出现提示时,输入 Workload Balancing 虚拟设备的 root 密码。证书将复制到当前 目录。
  4. 安装证书。在您复制证书的目录中运行以下命令:
    xe pool-certificate-install filename=wlb.pem
  5. 通过在池协调器上运行以下命令来验证证书是否已正确安装:
    xe pool-certificate-list
    如果您正确安装了证书,此命令的输出将包含导出的根证书。 运行此命令会列出所有已安装的 TLS 证书,包括您安装的证书。
  6. 要将证书从协调器同步到池中的所有主机,请在 池协调器上运行以下命令:
    xe pool-certificate-sync
    在协调器上运行 pool-certificate-sync 命令会将所有池主机上的证书和证书 吊销列表与协调器同步。此操作可确保池中的所有主机都使用 相同的证书。
    此命令没有输出。但是,如果此步骤未成功,则下一步将无法工作。
  7. 指示 XenServer 在连接到 Workload Balancing 虚拟设备之前验证证书。运行 以下命令在池协调器上:
    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    提示:
    按 Tab 键会自动填充池的 UUID。
  8. (可选)要验证此过程是否成功,请执行以下步骤:
    1. 要测试证书是否已同步到池中的其他主机,请运行 pool-certificate-list 命令在那些主机上。
    2. 要测试 XenServer 是否设置为验证证书,请运行 pool-param-get 命令,并使用 param-name=wlb-verify-cert 参数。例如:
      xe pool-param-get param-name=wlb-verify-cert uuid=uuid_of_pool

配置 XenServer 以验证证书颁发机构证书

您可以配置 XenServer 以验证由受信任的证书颁发机构签名的证书。
对于受信任的颁发机构证书,XenServer 需要导出证书或证书链(中间 和根证书),采用 .pem 格式,其中包含公钥。
如果您希望 Workload Balancing 使用受信任的颁发机构证书,请执行以下任务:
在开始这些任务之前,请确保:
  • 您知道 XenServer 池协调器的 IP 地址。
  • XenServer 可以解析 Workload Balancing 主机名。(例如,您可以尝试从 XenServer 控制台 ping Workload Balancing FQDN,以获取池协调器。)

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

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

指定公用名 (Common Name) 的准则

创建 CSR 时指定的公用名 (CN) 必须与您的 Workload Balancing 虚拟设备的 FQDN 完全匹配。 它还必须与您在“连接到 WLB 服务器”对话框的“地址”框中指定的 FQDN 或 IP 地址匹配。
为确保名称匹配,请使用以下准则之一指定公用名:
  • 为证书的公用名指定与您在“连接到 WLB 服务器” 对话框中指定的信息相同的信息。
    例如,如果您的 Workload Balancing 虚拟设备名为 wlb-vpx.yourdomain,请指定 wlb-vpx.yourdomain 在“连接到 WLB 服务器”对话框中,并提供 wlb-vpx.yourdomain 作为公用名 创建 CSR 时。
  • 如果您通过 IP 地址将池连接到 Workload Balancing,请使用 FQDN 作为公用名,并使用 IP 地址 作为主题备用名称 (SAN)。但是,此方法可能并非在所有情况下都适用。

创建私钥文件

在 Workload Balancing 虚拟设备上,完成以下步骤:
  1. 创建私钥文件:
    openssl genrsa -des3 -out privatekey.pem 2048
  2. 删除密码:
    openssl rsa -in privatekey.pem -out privatekey.nop.pem
注意:
如果您输入密码不正确或不一致,可能会收到一些消息,指示存在 用户界面错误。您可以忽略该消息并重新运行命令以创建私钥文件。

生成证书签名请求

在 Workload Balancing 虚拟设备上,完成以下步骤:
  1. 使用私钥创建证书签名请求 (CSR):
    openssl req -new -key privatekey.nop.pem -out csr
  2. 按照提示提供生成 CSR 所需的信息:
    国家/地区名称。输入您所在国家/地区的 TLS 证书国家/地区代码。例如,加拿大的 CA 或牙买加的 JM。您可以在网上找到 TLS 证书国家/地区代码列表。
    州或省名称(全称)。输入池所在的州或省。例如, 马萨诸塞州或艾伯塔省。
    地区名称。池所在的城市名称。
    组织名称。您的公司或组织名称。
    组织单位名称。输入部门名称。此字段是可选的。
    通用名称。输入 Workload Balancing 服务器的 FQDN。此值必须与池用于 连接到 Workload Balancing 的名称匹配。有关详细信息,请参阅 指定通用名称的准则。
    电子邮件地址。生成证书时,此电子邮件地址将包含在证书中。
  3. 提供可选属性,或单击 Enter 跳过提供此信息。
    CSR 请求保存在当前目录中,并命名为 csr。
  4. 通过在 Workload Balancing 设备控制台中运行以下命令,在控制台窗口中显示 CSR:
    cat csr
  5. 复制整个 CSR 并使用它向证书颁发机构请求证书。

指定并应用新证书

使用此过程指定工作负载平衡使用来自证书颁发机构的证书。此过程 安装根证书和(如果可用)中间证书。
要指定新证书,请完成以下步骤:
  1. 从证书颁发机构下载签名证书、根证书以及(如果证书颁发机构有)中间 证书。
  2. 如果您没有将证书直接下载到工作负载平衡虚拟设备,请通过以下方法之一 复制它们:
    • 从 Windows 计算机,使用 WinSCP 或其他复制实用程序。
      对于主机名,您可以输入 IP 地址并将端口保留为默认值。用户名和密码 通常是 root 以及您在配置期间设置的任何密码。
    • 从 Linux 计算机到工作负载平衡设备,使用 SCP 或其他复制实用程序。例如:
      scp root_ca.pem root@wlb-ip:/path_on_your_WLB
  3. 在工作负载平衡虚拟设备上,将所有证书(根证书、 中间证书(如果存在)和签名证书)的内容合并到一个文件中。您可以使用以下命令:
    cat signed_cert.pem intermediate_ca.pem root_ca.pem > server.pem
  4. 使用移动命令重命名现有证书和密钥:
    mv /etc/ssl/certs/server.pem /etc/ssl/certs/server.pem_orig
    mv /etc/ssl/certs/server.key /etc/ssl/certs/server.key_orig
  5. 复制合并的证书:
    mv server.pem /etc/ssl/certs/server.pem
  6. 复制之前创建的私钥:
    mv privatekey.nop.pem /etc/ssl/certs/server.key
  7. 使私钥只能由 root 读取。使用 chmod 命令修复权限。
    chmod 600 /etc/ssl/certs/server.key
  8. 重启 stunnel:
    pkill -9 stunnel
    stunnel

将证书链导入池中

获取证书后,将其导入 XenServer 池协调器。同步池中的主机 以使用这些证书。然后,您可以配置 XenServer,使其在每次 工作负载平衡连接到主机时检查证书身份和有效性。
  1. 将签名证书、根证书以及(如果证书颁发机构有)中间 证书从证书颁发机构复制到 XenServer 池协调器。
  2. 在池协调器上安装根证书:
    xe pool-install-ca-certificate filename=root_ca.pem
  3. 如果适用,在池协调器上安装中间证书:
    xe pool-install-ca-certificate filename=intermediate_ca.pem
  4. 通过在池协调器上运行此命令来验证两个证书是否已正确安装:
    xe pool-certificate-list
    运行此命令会列出所有已安装的 TLS 证书。如果证书安装成功,它们将显示 在此列表中。
  5. 将池协调器上的证书同步到池中的所有主机:
    xe pool-certificate-sync
    在协调器上运行 pool-certificate-sync 命令会将所有池主机上的证书和证书 吊销列表与池协调器同步。此操作可确保池中的所有主机都使用 相同的证书。
  6. 指示 XenServer 在连接到工作负载平衡虚拟设备之前验证证书。在池协调器上运行 以下命令:
    xe pool-param-set wlb-verify-cert=true uuid=uuid_of_pool
    提示:
    按 Tab 键会自动填充池的 UUID。
  7. 如果您在启用证书验证之前在“连接到 WLB 服务器”对话框中指定了 IP 地址, 系统可能会提示您将池重新连接到工作负载平衡。
    在“连接到 WLB 服务器”对话框的“地址”中指定工作负载平衡设备的 FQDN, 使其与证书的公用名完全一致。输入 FQDN 以确保公用名与 XenServer 用于连接的名称匹配。

故障排除

  • 您的池默认启用证书验证。如果您的池无法 连接到工作负载平衡,请禁用证书验证:
    1. 获取池 UUID:
      xe pool-list
    2. 禁用证书验证:
      xe pool-param-set wlb-verify-cert=false uuid=uuid_of_pool
    如果您的池在关闭证书验证的情况下可以连接到 Workload Balancing,则问题出在您的 证书配置上。如果无法连接,则问题出在您的 Workload Balancing 凭据或 网络连接上。请联系支持人员或参阅 排查 Workload Balancing 故障 以获取更多信息。
  • 一些商业证书颁发机构提供工具来验证证书是否正确安装。如果这些过程无法帮助隔离问题,请考虑 运行这些工具。如果这些工具需要指定 TLS 端口,请指定端口 8012 或您在 Workload Balancing 配置期间设置的任何端口。
  • 如果 WLB 选项卡显示连接错误,则证书通用名称与 Workload Balancing 虚拟设备的名称之间可能存在冲突。Workload Balancing 虚拟设备名称和证书的通用名称 必须完全匹配。
有关详细信息,请参阅 (/zh-cn/xenserver/8/wlb/troubleshoot.html)。

重新生成自签名证书

如果 Workload Balancing 虚拟设备的 IP 地址发生更改,并且不再与 证书中的值一致,Workload Balancing 会在其控制台中显示警告消息。
要解决此警告,请完成以下步骤:
  1. 登录到您的 Workload Balancing 虚拟设备。
  2. 通过运行以下命令重新生成证书:wlb_update_cert.sh
  3. 重新连接到 Workload Balancing 虚拟设备。