管理 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
标记 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
只读。适用于 VM、快照和模板对象。可能的值:
ok、update_available、update_on_boot。
方法:
VM.update_secureboot_certificates_on_boot(session, vm, mark)
传入
mark=true 以在下次启动时安排证书更新。传入 mark=false 以取消待处理的更新。
PowerShell 参考
使用 VM 对象
$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 对象
$pool,可以按如下方式启用自动修复:
Set-XenPool -Pool $pool -AutoUpdateVmSecurebootCertificates $true
故障排除
重启后出现 BitLocker 恢复提示
如果在 Windows 虚拟机上配置了 BitLocker 且未暂停,则在证书修复后的首次重启后,很可能会提示输入 BitLocker 恢复密钥。
输入 BitLocker 恢复密钥以解锁驱动器。虚拟机成功启动后,BitLocker 会自动恢复保护卷。为避免此行为,请在计划的修复重启之前暂停虚拟机上的 BitLocker 保护,并在重启完成后恢复保护。
重启后虚拟机仍处于 update_available 状态
如果虚拟机在重启后仍显示
update_available,则更新可能尚未应用。通过使用 xe CLI 检查状态,验证虚拟机在重启前是否已标记。如果状态是 update_available 而不是 ok,请再次标记虚拟机并重启。
快照或模板显示 update_available
快照和模板无法直接修复。要更新快照或模板的证书状态,请将其转换为虚拟机,然后在标记为更新后重启该虚拟机。