Azure虚拟机上Linux的安全启动证书更新
应用对象
原始发布日期: 2026 年 6 月 12 日
KB ID:5103014
适用于:
Azure受信任的启动虚拟机和运行Linux且启用了安全启动的机密虚拟机
有关受信任启动支持的 OS 的完整列表,请参阅此链接:Azure VM 的受信任启动 - Azure 虚拟机 |Microsoft Learn
有关机密 VM 支持的 OS 的完整列表,请参阅此链接:关于机密 VM Azure |Microsoft Learn
本任务的内容
简介
安全启动是一项 UEFI 固件安全功能,可帮助确保在 VM 启动序列期间仅运行受信任的数字签名软件。 2011 年颁发的Microsoft安全启动证书将于 2026 年 6 月到期。
若要维护安全启动保护和早期启动过程的持续服务,Azure运行 Linux 的受信任启动必须在虚拟 UEFI 固件中使用安全启动 2023 db 和 KEK 证书进行更新。 必须使用旧证书在Azure上重新创建用于Linux的机密虚拟机。
如果 VM 在过期后继续依赖 2011 证书,它将继续启动。 但是,它将不再以填充码更新和将来的证书和吊销的形式接收新的安全保护。
确定需要操作的方案
查看以下方案以确定是否需要操作:
-
Linux 2024 年 4 月之前创建的 (TVM) 或机密 VM (CVM) 受信任的启动 VM
-
Azure 2024 年 4 月之前的旧 (捕获的计算库映像) Linux 受信任的启动或机密 VM
-
在 2024 年 4 月之前创建的Linux受信任的启动或机密 VM 的快照或备份
-
2024 年 4 月前从 Blob 创建的机密 VM,作为安全磁盘导入。
在 2024 年 4 月之后创建的受信任启动和机密虚拟机通常已在虚拟 UEFI 固件中包含安全启动 2023 证书。
注意: Linux不应手动更新 2024 年 4 月之前创建的机密 VM,因为机密磁盘加密依赖于基于安全启动变量计算的 vTPM 的 PCR7 值。 在不确保 FDE 密钥重新密封的情况下更新安全启动证书将导致机密 VM 进入恢复模式。 建议重新创建此类旧机密 VM 以获取新证书。
Azure来宾 VM 注意事项
Azure VM 上Linux的安全启动更新涉及两个组件:
-
虚拟固件中的安全启动证书 (通过操作系统提供的工具手动安装,或通过安全更新自动安装)
-
Linux填充码和引导加载程序更新 (发行版供应商托管)
更新操作从来宾操作系统内启动,并依赖于平台支持将经过身份验证的更新应用于安全启动变量。
确定适用方案后,清点环境以确定哪些 VM 需要更新。
需要采取行动
对于所有Azure来宾 VM:
-
验证虚拟 UEFI 固件中是否存在安全启动 2023 证书
对于受信任的启动 VM:
-
根据需要根据发行版供应商的建议指南和工具,从Linux来宾 VM 操作系统中启动更新。
-
对于Linux VM,必须按正确的顺序应用更新。
重要: 在更新填充码或启动加载程序之前,请始终更新安全启动固件 (UEFI 变量) 。
-
在先更新固件之前更新填充码可能会导致启动失败。
对于机密 VM:
-
大多数机密 VM 已有新证书。 对于没有安全启动 2023 证书的机密 VM,请按照机密 VM 的Azure建议部分中的指导进行操作。
部署更新
Azure VM 上Linux的安全启动证书更新是从来宾操作系统中启动的。 这些更新因发行版供应商而异,客户应首先检查建议的方法与其发行版供应商。
Linux OS 供应商的建议:
机密 VM 的Azure建议:
-
2024 年 4 月前创建的 CVM 数量非常少。 如果机密 VM 是少数没有新证书的 VM 之一,请按照以下步骤重新创建 CVM。
固件更新方法
注意: 在直接在生产 VM 上尝试 UEFI 变量更新之前,客户可以使用Azure快速入门模板来模拟具有较旧 2011 UEFI CA 证书的Linux受信任的启动 VM。
使用 fwupd
确保 VM 已安装 fwupd 版本 2.0.8 或更高版本。
若要同时更新 KEK 和 db,请使用 fwupdmgr 运行以下命令:
sudo fwupdmgr 刷新
sudo fwupdmgr update
使用 efitools
下载用于Azure的 db 和 KEK 更新包。
-
wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/ \
PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
-
wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/ \
PostSignedObjects/KEK/Microsoft/KEKUpdate_Microsoft_PK1.bin
使用 efi-updatevar 安装更新包
sudo efi-updatevar -a -f DBUpdate3P2023.bin db
sudo efi-updatevar -a -f KEKUpdate_Microsoft_PK1.bin KEK
sudo 重新启动
使用 sbsigntools
下载用于Azure的 db 和 KEK 更新包。
wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/ \
PostSignedObjects/Optional/DB/amd64/DBUpdate3P2023.bin
wget https://github.com/microsoft/secureboot_objects/raw/refs/heads/main/ \
PostSignedObjects/KEK/Microsoft/KEKUpdate_Microsoft_PK1.bin
使用 sbsigntools 的 sbkeysync 实用工具安装更新包:
sudo mkdir -p /etc/secureboot/keys/db
sudo cp DBUpdate3P2023.bin /etc/secureboot/keys/db
sudo mkdir -p /etc/secureboot/keys/KEK
sudo cp KEKUpdate_Microsoft_PK1.bin /etc/secureboot/keys/KEK
sudo chattr -i /sys/firmware/efi/efivars/db-*
sudo chattr -i /sys/firmware/efi/efivars/KEK-*
sudo sbkeysync --verbose
sudo chattr +i /sys/firmware/efi/efivars/db-*
sudo chattr +i /sys/firmware/efi/efivars/KEK-*
sudo 重新启动
验证方法
使用 mokutil
-
mokutil --db |grep “UEFI CA 2023”
-
mokutil --kek |grep “KEK 2K CA 2023”
使用 efitools
-
efi-readvar -v db |grep “UEFI CA 2023”
-
efi-readvar -v KEK |grep “KEK 2K CA 2023”
-
Linux启动链更新
成功更新固件后,可以安全地应用来自Linux分发供应商的填充码更新。
其他Azure资源注意事项
|
Azure资源 |
创建于 2024 年 4 月之前 |
TVM 所需的操作 |
CVM 所需的操作 |
|---|---|---|---|
|
备份/快照 |
是 |
启动 VM、应用更新、重新捕获 |
重新创建 CVM,重新捕获 |
|
备份/快照 |
否 |
无需执行任何操作 |
无需执行任何操作 |
|
计算库映像 |
是 |
部署、更新、重新捕获 |
重新创建 CVM,重新捕获 |
|
计算库映像 |
否 |
无需执行任何操作 |
无需执行任何操作 |
监视更新状态
通过来宾 OS 验证更新:
-
在更新后验证成功启动
-
确认固件中存在安全启动证书
监视和验证方法可能因分发Linux而异,应与分发供应商检查。
启动失败时的缓解步骤
如果出现 UEFI 变量更新后启动失败等故障情况,可以使用以下方法之一重置 UEFI 设置:
-
还原在开始手动更新过程之前进行的备份。
-
将受信任的启动 VM 转换为Standard VM,并在 VM 上重新应用受信任的启动安全类型。 此处 (更多详细信息:在现有 Gen2 VM 上启用受信任启动 - Azure 虚拟机 |Microsoft Learn)
第三方信息免责声明
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 对于这些产品的性能或可靠性,我们不作任何暗示保证或其他形式的保证
我们提供了第三方联系信息,以便你寻求技术支持。 该联系信息如有更改,恕不另行通知。 我们不保证此第三方联系信息的准确性。