管理 UEFI 安全启动证书修复
微软最初的 2011 年 UEFI 安全启动证书将于 2026 年 6 月开始过期,取而代之的是 2023 年颁发的替换证书。XenServer® 提供了一个托管的修复工作流,帮助管理员识别其 UEFI NVRAM 仅包含旧版 2011 年微软证书链的虚拟机 (VM),并在受控重启期间安全地更新这些 VM 以包含 2023 年证书。
XenServer 8.4 于 2025 年 11 月 发布了一个更新,该更新确保了新置备的虚拟机包含较新的 2023 年微软证书。此修复工作流仅适用于在此更新之前置备的 VM,这些 VM 可能只包含旧版 2011 年证书。
以下 VM 类对象属于此修复工作流的范围:
-
仅包含微软 2011 年 UEFI 证书链的 UEFI Windows 和 Linux VM,包括当前禁用安全启动的 VM。
-
带有旧版证书状态的快照和模板(用于报告,不可直接更新)。
以下各项不在此范围之内:
-
已包含 2023 年微软证书的 VM。
-
BIOS 启动 VM。
-
使用自定义 UEFI 证书的 VM。
请注意,如果虚拟机由 Citrix Virtual Apps and Desktops™ (CVAD) 置备,可能需要额外步骤以确保未来的虚拟机包含 2023 年证书。请参阅 CTX696696 中的 CVAD 指南,了解所需的具体操作。
注意:
下述功能已于 Jun 11, 2026 作为更新发布到 XenServer 8.4 抢先体验通道,并于 Jun 24, 2026 发布到普通通道。
证书状态
XenServer 公开了一个只读证书状态,适用于每个 VM、快照和模板对象。可能的值在下表中描述:
| 状态 | 含义 |
|---|---|
ok |
该对象不需要修复。这包括 BIOS 引导虚拟机和已包含 2023 Microsoft 证书链的虚拟机。 |
update_available |
该虚拟机符合修复条件,可以在下次启动时标记为更新。 |
update_on_boot |
该虚拟机已被标记,XenServer 将在该虚拟机下次启动时自动更新证书。 |
注意:
快照和模板仅出于可见性目的显示其证书状态。修复仅在快照或模板转换为虚拟机且该虚拟机启动后才适用。
先决条件
警告:
更新 UEFI 证书会更改 TPM PCR 测量值(特别是 PCR7),这可能会在将卷主密钥密封到 PCR7 的 Windows 客户机上触发 BitLocker 恢复模式。请仔细规划和分阶段推出,以避免意外的用户中断。
在标记任何虚拟机进行修复之前,请执行以下操作:
-
作为预防措施,请确保 BitLocker 恢复密钥可访问。
-
在更新证书之前,暂停受影响的 Windows VM 上的 BitLocker 保护。
-
在受监控的维护窗口中安排首次修复后的重新启动。
使用 XenCenter® 管理证书修复
请参阅 安全启动证书。
使用 CLI 管理证书修复
查看证书状态
运行以下命令以列出所有 VM 类对象(包括快照和模板)的证书状态:
xe vm-list params=name-label,uuid,is-a-template,is-snapshot,secureboot-certificates-state
标记 VM 以进行修复
运行以下命令以标记 VM,以便 XenServer 在该 VM 下次启动时更新证书:
xe vm-update-secureboot-certificates-on-boot uuid=<vm-uuid> mark=true
取消待处理的更新
运行以下命令以在 VM 重新启动之前取消待处理的证书更新:
xe vm-update-secureboot-certificates-on-boot uuid=<vm-uuid> mark=false
注意:
您只能在 VM 重新启动和计划的修复运行之前取消待处理的更新。VM 重新启动并应用更新后,状态将自动返回到
ok。
XenAPI 参考
证书修复工作流引入了以下 XenAPI 字段和方法,这些字段和方法首次在 SDK 版本 26.14.0 中提供。
字段:
VM.secureboot_certificates_state
只读。适用于虚拟机、快照和模板对象。可能的值:
ok、update_available、update_on_boot。
方法:
VM.update_secureboot_certificates_on_boot(session, vm, mark)
传递
mark=true 以安排在下次启动时更新证书。传递 mark=false 以取消待处理的更新。
PowerShell 参考
对于虚拟机对象
$vm,可以按如下方式访问新字段:
$vm.secureboot_certificates_state
新方法按如下方式调用:
Invoke-XenVM -XenAction UpdateSecurebootCertificatesOnBoot -VM $vm -Mark $true
规划
-
以合理大小的批次安排更新,以限制 BitLocker 恢复等问题造成的影响范围。
-
首先在有代表性的虚拟机上测试更新,并在广泛部署之前验证来宾启动行为。
-
请勿同时批量重启大量虚拟机;错开重启时间,以便有时间响应意外的 BitLocker 或启动问题。
自动修复
注意:
XenServer 可以配置为在需要时自动应用修复到由其他产品(例如 Citrix Virtual Apps and Desktops (CVAD))创建/导入的虚拟机。
默认情况下,此行为处于禁用状态,因为操作证书状态可能会导致虚拟机内部出现问题(请参阅先决条件)。
启用自动修复
运行以下命令以启用自动修复:
xe pool-param-set uuid=<pool-uuid> auto-update-vm-secureboot-certificates=true
禁用自动修复
运行以下命令以禁用自动修复:
xe pool-param-set uuid=<pool-uuid> auto-update-vm-secureboot-certificates=false
PowerShell 参考
对于池对象
$pool,可以按如下方式启用自动修复:
Set-XenPool -Pool $pool -AutoUpdateVmSecurebootCertificates $true
故障排除
重启后出现 BitLocker 恢复提示
如果 BitLocker 已配置且未在 Windows 虚拟机上暂停,则在证书修复后的首次重新启动后,它可能会提示输入 BitLocker 恢复密钥。
输入 BitLocker 恢复密钥以解锁驱动器。虚拟机成功启动后,BitLocker 会自动恢复保护卷。为避免此行为,请在计划的修复重新启动之前暂停虚拟机上的 BitLocker 保护,并在重新启动完成后恢复它。
重启后虚拟机仍处于 update_available 状态
如果虚拟机在重新启动后仍显示
update_available,则可能未应用更新。通过使用 xe CLI 检查状态,验证虚拟机在重新启动之前是否已标记。如果状态是 update_available 而不是 ok,请再次标记虚拟机并重新启动。
快照或模板显示 update_available
快照和模板无法直接修复。要更新快照或模板的证书状态,请将其转换为虚拟机,然后在将其标记为更新后重新启动该虚拟机。