XenServer

管理 UEFI 安全启动证书修复

Microsoft 最初的 2011 年 UEFI 安全启动证书将于 2026 年 6 月开始过期,取而代之的是 2023 年颁发的替换证书。XenServer® 提供了一个托管修复工作流,可帮助管理员识别其 UEFI NVRAM 仅包含旧版 2011 年 Microsoft 证书链的虚拟机 (VM),并在受控重启期间安全地更新这些 VM 以包含 2023 年证书。

在 XenServer 9 上新预配的虚拟机包含较新的 2023 年 Microsoft 证书。此修复工作流仅适用于最初在较旧的 XenServer 版本上预配的 VM,这些 VM 可能只包含旧版 2011 年证书。

以下 VM 类对象在此修复工作流的范围内:

  • 仅包含 Microsoft 2011 UEFI 证书链的 UEFI Windows 和 Linux VM,包括当前禁用安全启动的 VM。
  • 携带旧版证书状态的快照和模板(用于报告,不可直接更新)。

以下内容不在范围内:

  • 已包含 2023 年 Microsoft 证书的 VM。
  • BIOS 启动 VM。
  • 使用自定义 UEFI 证书的 VM。

请注意,如果虚拟机由 Citrix Virtual Apps and Desktops™ (CVAD) 预配,可能需要额外的步骤来确保未来的虚拟机包含 2023 年证书。有关所需的具体操作,请参阅 CTX696696 中的 CVAD 指南。

证书状态

XenServer 为每个 VM、快照和模板对象公开一个只读证书状态。下表描述了可能的值:

状态 含义
ok 该对象不需要修复。这包括 BIOS 引导虚拟机和已包含 2023 Microsoft 证书链的虚拟机。
update_available 虚拟机符合修复条件,可以在下次启动时标记为更新。
update_on_boot 虚拟机已被标记,XenServer 将在该虚拟机下次启动时自动更新证书。

注意:

快照和模板仅出于可见性目的显示其证书状态。修复仅在快照或模板转换为虚拟机且该虚拟机启动后才适用。

先决条件

警告:

更新 UEFI 证书会更改 TPM PCR 测量值(特别是 PCR7),这可能会在将卷主密钥密封到 PCR7 的 Windows 客户机上触发 BitLocker 恢复模式。请仔细规划和分阶段推出,以避免意外的用户中断。

在将任何虚拟机标记为修复之前,请执行以下操作:

  • 作为预防措施,请确保 BitLocker 恢复密钥可访问。
  • 在更新证书之前,暂停受影响的 Windows 虚拟机上的 BitLocker 保护。
  • 在受监控的维护窗口中安排首次修复后的重新启动。

使用 XenCenter® 管理证书修复

请参阅 安全启动证书

使用 CLI 管理证书修复

查看证书状态

运行以下命令以列出所有 VM 类对象(包括快照和模板)的证书状态:

xe vm-list params=name-label,uuid,is-a-template,is-snapshot,secureboot-certificates-state
<!--NeedCopy-->

标记 VM 以进行修复

运行以下命令以标记 VM,以便 XenServer 在该 VM 下次启动时更新证书:

xe vm-update-secureboot-certificates-on-boot uuid=<vm-uuid> mark=true
<!--NeedCopy-->

取消待处理的更新

运行以下命令以在 VM 重新启动之前取消待处理的证书更新:

xe vm-update-secureboot-certificates-on-boot uuid=<vm-uuid> mark=false
<!--NeedCopy-->

注意:

您只能在 VM 重新启动和计划的修复运行之前取消待处理的更新。VM 重新启动并应用更新后,状态将自动返回到 ok

XenAPI 参考

证书修复工作流引入了以下 XenAPI 字段和方法,这些字段和方法首次在 SDK 版本 26.14.0 中提供。

字段: VM.secureboot_certificates_state

只读。适用于 VM、快照和模板对象。可能的值:okupdate_availableupdate_on_boot

方法: VM.update_secureboot_certificates_on_boot(session, vm, mark)

传递 mark=true 以在下次启动时安排证书更新。传递 mark=false 以取消待处理的更新。

PowerShell 参考

使用 VM 对象 $vm,可以按如下方式访问新字段:

$vm.secureboot_certificates_state
<!--NeedCopy-->

新方法按如下方式调用:

Invoke-XenVM -XenAction UpdateSecurebootCertificatesOnBoot -VM $vm -Mark $true
<!--NeedCopy-->

规划

  1. 以合理大小的批次安排更新,以限制 BitLocker 恢复等问题造成的任何影响范围。
  2. 首先在代表性 VM 上测试更新,并在广泛部署之前验证来宾启动行为。
  3. 不要同时批量重启大量 VM;错开重启时间,以便有时间响应意外的 BitLocker 或启动问题。

自动修复

注意:

下面描述的自动修复功能已作为更新发布到 XenServer 9 Early AccessNormal 通道,于 July 16, 2026。

可以将 XenServer 配置为在需要时自动应用修复到由其他产品(例如 Citrix Virtual Apps and Desktops (CVAD))创建/导入的虚拟机。

此行为默认禁用,因为操作证书状态可能会导致虚拟机内部出现问题(请参阅 Prerequisites)。

启用自动修复

运行以下命令以启用自动修复:

xe pool-param-set uuid=<pool-uuid> auto-update-vm-secureboot-certificates=true
<!--NeedCopy-->

禁用自动修复

运行以下命令以禁用自动修复:

xe pool-param-set uuid=<pool-uuid> auto-update-vm-secureboot-certificates=false
<!--NeedCopy-->

PowerShell 参考

使用 $pool 池对象,可以按如下方式启用自动修复:

Set-XenPool -Pool $pool -AutoUpdateVmSecurebootCertificates $true
<!--NeedCopy-->

故障排除

重启后出现 BitLocker 恢复提示

如果在 Windows 虚拟机上配置了 BitLocker 且未暂停,则在证书修复后的首次重启后,很可能会提示输入 BitLocker 恢复密钥。

输入 BitLocker 恢复密钥以解锁驱动器。虚拟机成功启动后,BitLocker 会自动恢复保护卷。为避免此行为,请在计划的修复重启之前暂停虚拟机上的 BitLocker 保护,并在重启完成后恢复保护。

重启后虚拟机仍处于 update_available 状态

如果虚拟机在重启后仍显示 update_available,则更新可能尚未应用。通过使用 xe CLI 检查状态,验证虚拟机在重启前是否已标记。如果状态是 update_available 而不是 ok,请再次标记虚拟机并重启。

快照或模板显示 update_available

快照和模板无法直接修复。要更新快照或模板的证书状态,请将其转换为虚拟机,然后在标记为更新后重启该虚拟机。

管理 UEFI 安全启动证书修复