证书验证

为池启用证书验证后,其管理网络上的所有 TLS 通信终端节点在传输机密信息之前都会使用证书验证其对等通信端点的身份。

行为

由管理网络上的 XenServer 主机启动的连接要求目标端点提供 TLS 证书以验证其身份。此要求会影响作为池的一部分或与池进行交互的以下项目:

  • 池中的主机
  • XenCenter
  • 使用 API 的第三方客户端

证书验证与 XenServer 提供的自签名证书和由受信任的机构签名的用户安装证书兼容。有关详细信息,请参阅在主机上安装 TLS 证书

池中的每个 XenServer 主机都有两个用于对其进行识别的证书:

  • 池内部身份证书用于保护池内各主机之间的通信。对于池内的通信,XenServer 始终使用自签名证书。

  • 服务器身份证书用于向与管理网络上的池进行通信的任何客户端应用程序验证 XenServer 主机的身份。对于主机与客户端应用程序之间的通信,您可以使用自签名证书,也可以在主机上安装自己的 TLS 证书。

当主机首次加入池或客户端首次与池建立连接时,池将信任该连接。在第一次进行此连接期间,将在池和加入的主机或连接的客户端之间交换证书。对于此主机或客户端在管理网络上进行的所有后续通信,证书将用于验证通信中所涉及各方的身份。

我们建议您在所有主机和池上启用证书验证。要使 XenServer 主机成功加入池,主机和池都必须启用或禁用证书验证。如果其中一个启用了证书验证,而另一个未启用,则加入操作将失败。XenCenter 会提供一条警告消息,建议您在池或加入的主机上启用证书验证。

当某个主机离开启用了证书验证的池时,该主机和池都会删除与对方相关的证书。

Workload Balancing 虚拟设备可以与证书验证功能结合使用。必须确保 Workload Balancing 自签名证书已安装到您的 XenServer 主机中。

XenServer Conversion Manager 虚拟设备不会连接到 XenServer 主机,因此当它充当 TLS 客户端端点时,则无需按照要求进行认证检查。

为您的池启用证书验证

在全新安装的 XenServer 8 及更高版本中,证书验证默认处于启用状态。如果从 XenServer 或 Citrix Hypervisor 的早期版本升级,则不会自动启用证书验证,您必须负责将其启用。下次连接到升级后的池时,XenCenter 会提示您启用证书验证。

在池上启用证书验证之前,请确保池中未运行任何操作。

使用 XenCenter 启用

XenCenter 提供了多种启用证书验证的方法。

  • 首次将 XenCenter 连接到未启用证书验证的池时,系统会提示您将其启用。单击是,启用证书验证

  • 菜单中,选择启用证书验证

  • 在池的常规选项卡上,右键单击证书验证条目,然后从菜单中选择启用证书验证

使用 xe CLI 进行启用

要为池启用证书验证,请在池中主机的控制台中运行以下命令:

xe pool-enable-tls-verification

管理证书

您可以安装用于验证主机身份的证书、查看有关这些证书的信息,以及重置这些证书。

安装证书

可以为主机安装您自己的 TLS 证书,以便在从管理网络上的客户端应用程序接收连接时显示为其身份证书。

有关详细信息,请参阅在主机上安装 TLS 证书

查看证书信息

要了解池是否已启用证书验证,请执行以下操作:

  • 在 XenCenter 中,查看池的常规选项卡。常规部分有一个证书验证条目,显示启用还是禁用了证书验证。此选项卡还包含证书部分,其中列出了 CA 证书的名称、有效期和指纹。

  • 使用 xe CLI,您可以运行以下命令:

     xe pool-param-get uuid=<pool_uuid> param-name=tls-verification-enabled
    

    如果启用了证书验证,命令输出中将显示行 tls-verification-enabled ( RO): true

要查看 XenServer 主机上的证书相关信息,请执行以下操作:

  • 在 XenCenter 中,转到该主机的常规选项卡。证书部分将显示服务器身份证书和池内部身份证书的指纹和有效日期。

  • 使用 xe CLI,您可以运行以下命令:

     xe certificate-list
    

刷新池内部身份证书

您可以使用 xe CLI 刷新池内部身份证书:

  1. 请通过运行以下命令查找要重置其证书的主机的 UUID:

    xs host-list
    
  2. 要重置证书,请运行以下命令:

    xe host-refresh-server-certificate host=<host_uuid>
    

    注意:

    任何主机选择器参数均可与此命令一起使用,以指示主机重置证书。

重置服务器身份证书

您可以从 XenCenter 或 xe CLI 重置服务器身份证书。重置证书会从主机中删除该证书,并在该证书所在的位置安装新的自签名证书。

要在 XenCenter 中重置证书,请执行以下操作:

  1. 转到主机的常规选项卡。
  2. 证书部分中,右键单击要重置的证书。
  3. 从菜单中选择重置证书
  4. 在显示的对话框中,单击以确认重置证书。

或者,在服务器菜单中,您可以转到证书 > 重置证书

重置证书时,与 XenServer 主机建立的所有现有连接都将断开,包括 XenCenter 与主机之间的连接。重置证书后,XenCenter 会自动重新连接到该主机。

要使用 xe CLI 重置证书,请执行以下操作:

  1. 请通过运行以下命令查找要重置其证书的主机的 UUID:

    xs host-list
    
  2. 要重置证书,请运行以下命令:

    xe host-reset-server-certificate host=<host_uuid>
    

    注意:

    任何主机选择器参数均可与此命令一起使用,以指示 XenServer 主机重置证书。

重置证书时,与 XenServer 主机建立的所有现有连接都将断开,包括 XenCenter 与主机之间的连接。重置证书后,XenCenter 会自动重新连接到该主机。

到期警报

当您的服务器身份证书、池内部身份证书或池 CA 证书快要过期时,XenCenter 会在通知视图中显示警报。

暂时禁用证书验证

我们不建议您在主机或池上启用证书验证后将其禁用。但是,XenServer 提供的命令可用于在对证书存在的问题进行故障排除时针对每个主机禁用证书验证。

要暂时禁用证书验证,请在主机控制台上运行以下命令:

xe host-emergency-disable-tls-verification

在启用了证书验证功能的池中的主机上禁用证书验证时,XenCenter 会在通知视图中显示警报。

解决主机上的证书存在的所有问题后,请确保在主机上再次启用证书验证。要再次启用证书验证,请在主机控制台上运行以下命令:

xe host-emergency-reenable-tls-verification
证书验证