Linux on Azure 虛擬機器的安全開機憑證更新

套用到
Virtual Machine running Linux

注意

  • 原始出版日期: 2026年6月12日
  • KB ID: 5103014

注意

本文內容

簡介

安全開機是 UEFI 韌體的安全功能,確保只有受信任且數位簽章的軟體能在虛擬機開機序列中運行。 2011 年發行的 Microsoft 安全啟動憑證將於 2026 年 6 月開始到期。

為維持安全開機保護及持續維護早期開機流程,運行 Linux 的 Azure Trusted Launch 必須在虛擬 UEFI 韌體中更新 Secure Boot 2023 資料庫與 KEK 憑證。 Azure 上 Linux 的機密虛擬機器與舊憑證必須重新建立。

如果虛擬機在憑證過期後仍依賴 2011 年的憑證,它仍會繼續開機。 然而,它將不再獲得以 shim 更新、未來憑證及撤銷形式進行的新安全保護。 擁有未更新憑證的虛擬機客戶,即使憑證過期後,仍應與發行版廠商合作更新憑證。

找出需要採取行動的情境

請檢視以下情境以判斷是否需要採取行動:

  • Linux 2024 年 4 月之前建立的 TVM) ( ( CVM) 的受信任啟動虛擬機
  • Azure 計算庫影像,取自2024年4月前) Linux 信任啟動或機密虛擬機 (舊版
  • 2024 年 4 月之前建立的 Linux 受信任啟動或機密虛擬機的快照或備份
  • 機密虛擬機是在 2024 年 4 月之前由 blobs 建立,並以安全磁碟匯入。

2024 年 4 月後建立的受信任啟動與機密虛擬機器,通常已在虛擬 UEFI 韌體中包含 Secure Boot 2023 憑證。

注意

2024 年 4 月之前建立的 Linux 機密虛擬機不應手動更新,因為機密磁碟加密依賴於基於安全開機變數計算的 vTPM 的 PCR7 值。 若未確保 FDE 金鑰重新封存,更新安全開機憑證會導致機密虛擬機進入復原模式。 建議重建這些舊的機密虛擬機以取得新的憑證。

Azure guest VM 考慮事項

Azure VM 上的 Linux 安全啟動更新包含兩個組件:

  • 虛擬韌體中的安全開機憑證 (透過作業系統提供的工具手動安裝,或透過安全更新自動安裝)
  • Linux shim 和 bootloader 更新 (發行版廠商管理的)

更新操作由客戶作業系統內部啟動,並依賴平台支援將認證更新套用於安全開機變數。

在辨識適用情境後,盤點你的環境以判斷哪些虛擬機需要更新。

需要的動作

For all Azure guest VMS:

  • 確認虛擬 UEFI 韌體中是否存在 Secure Boot 2023 憑證

驗證方法

更新後執行這些指令並重新啟動。 在 成功更新 的虛擬機上,每個指令會回傳一行相符的行。 若指令 未回傳任何輸出,代表對應的 2023 證書不存在,且更新尚未套用——請在套用前重新檢查更新步驟。

資料庫與 KEK 檢查都必須回傳一條線。 成功更新的機器顯示 2023 年 DB 證書 2023 年 KEK 證書。

使用 mokutil

注意

  • mokutil --db | grep "UEFI CA 2023"
  • CN = Microsoft UEFI CA 2023
  • mokutil --kek | grep "KEK 2K CA 2023"
  • CN = Microsoft Corporation KEK 2K CA 2023

使用 efitools

附註

  • efi-readvar -v db | grep "UEFI CA 2023"
  • Microsoft UEFI CA 2023
  • efi-readvar -v KEK | grep "KEK 2K CA 2023"
  • Microsoft Corporation KEK 2K CA 2023

附註

  • 如果沒有安裝 'mokutil',請從你發行版的標準倉庫安裝,或改用 'efi-readvar -v db` / `efi-readvar -v KEK'。
  • 對於機密虛擬機,請不要根據此結果手動更新——請依照 Azure 對機密虛擬機的建議重建虛擬機。

Linux 開機鏈更新

韌體更新成功後,就可以安全地套用來自 Linux 發行版廠商的 shim 更新。

其他 Azure 資源考量

Azure resource 2024年4月前建立 TVM 所需行動 CVM 所需行動
備份/快照 啟動虛擬機,套用更新,重新擷取 重建CVM,重新捕獲
備份/快照 不需要任何行動 不需要任何行動
Compute Gallery 影像 部署、更新、重新捕獲 重建CVM,重新捕獲
Compute Gallery 影像 不需要任何行動 不需要任何行動

監控更新狀態

透過訪客作業系統驗證更新:

  • 更新後驗證成功開機
  • 確認韌體中是否存在安全開機憑證

監控與驗證方法可能因 Linux 發行版而異,建議你向發行版供應商確認。

對於可信的啟動虛擬機:

  • 所有更新必須依照正確順序套用。

    重要

    在更新 shim 或 bootloader 之前,務必先更新 Secure Boot 韌體 (UEFI 變數) 。

  • 建議先重新啟動虛擬機,確保它運行的是最新韌體並確認開機成功。

  • 根據發行版廠商建議的指引與工具,在需要時從 Linux 訪客虛擬機作業系統內啟動更新。

  • 如果你遇到 KEK 或資料庫更新失敗且沒有先重開機,請重新啟動虛擬機確認它運行的是最新韌體,然後再嘗試更新 KEK 和資料庫。

  • 在更新韌體之前先更新墊片可能會導致開機失敗。

對於機密虛擬機:

  • 大多數機密虛擬機已經有新的憑證了。 對於沒有 Secure Boot 2023 憑證的機密虛擬機,請參考下方「Azure 對機密虛擬機的建議」章節中的指引。

部署更新

Azure 虛擬機上的 Linux 安全啟動憑證更新是從訪客作業系統內部發起的。 這些更新因發行版廠商而異, 客戶應先向其發行商確認 推薦的方法。

注意

  • 此處僅列出已發布安全開機憑證更新指引的 Linux 作業系統廠商。 隨著其他廠商發布指引,此清單會持續更新。
  • 如果你的發行版供應商未被列出,並不代表你的虛擬機不受影響——而是代表廠商尚未發布 2023 年安全啟動 KEK 與資料庫更新指引。 在這種情況下,請聯絡你的發行商詢問他們推薦的方法,或使用下方說明的 手動替代韌體更新方法 之一。

推薦的 Linux 作業系統廠商:

Recommendations by Azure for Confidential VMs:

  • 2024年4月前創建的CVM數量非常少。 如果你的機密虛擬機是少數沒有新憑證的虛擬機之一,請依照步驟 重新建立 CVM。

替代韌體更新方法

注意

在直接在生產虛擬機上更新 UEFI 變數之前,客戶可以先使用 Azure 快速啟動範本,模擬使用 2011 年 UEFI CA 憑證的 Linux 受信任啟動虛擬機。

重要

本節的手動韌體更新方法是與你發行商推薦的方法論不同且互斥。 只要有作業系統廠商的方法,請先使用 (Linux作業系統廠商推薦) 。 只有在供應商尚未發布指引,或明確指示你時,才使用以下手動方法。 不要同時套用供應商方法和手動方法到同一台虛擬機。  你只需要用一種替代方法來更新 fwupd、efitools 或 sbsigntools) , (這三種方法都不需要同時執行。  每個 Linux 發行版會打包不同的工具和版本,並且透過不同的軟體庫,因此遵循你 Linux 作業系統提供的指示非常重要。

注意

工具的可用性與版本因發行及工具來源而異。

替代方案一:使用 fwupd

確保虛擬機安裝的是 fwupd 2.0.8 或更新版本。

要同時更新 KEK 和資料庫,請使用 fwupdmgr 執行以下指令:

注意

  • sudo fwupdmgr refresh
  • 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
  • 請驗證下載二進位檔的 MD5 或 SHA1——它們應該完全符合以下條件:

    注意

    • sha1sum *.bin
    • 87cc5bb2efe9b59c6ad9f717a78e190bf1a191e8 DBUpdate3P2023.bin
    • d9a2fa28017653c26afc3d1b5c001adae9dc16a6 KEKUpdate_Microsoft_PK1.bin
    • md5sum *.bin
    • ef9fd1874610c2077f4c2476661ea4cd DBUpdate3P2023.bin
    • 5e67b7beafac7801fd920e40e3592611 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 reboot

替代方案三:使用 sbsigntools

  • 下載並驗證 DBUpdate3P2023.bin , KEKUpdate_Microsoft_PK1.bin 並如上文「替代方案2:使用 efitools」所述。

  • 使用 sbsignaturetools 的 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 reboot

開機失敗時的緩解步驟

若發生失敗情況,例如在 UEFI 變數更新後開機失敗,你可以使用以下其中一種方法重設 UEFI 設定:

  1. 還原開始手動更新前取得的備份。
  2. 將受信任啟動虛擬機轉換為 Standard 虛擬機,並在虛擬機上重新套用受信任啟動安全類型。 (更多細節請見:在現有第二代虛擬機上啟用可信啟動 - Azure 虛擬機器 |Microsoft 學習)
  3. 將作業系統的 vhd 匯出到儲存 帳號,從 vhd 建立圖庫 映像檔 ,並用 圖庫 映像版本部署虛擬機。

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

我們提供協力廠商的連絡資訊,協助您尋找技術支援。 此連絡資訊如有變更,恕不另行通知。 我們不保證此協力廠商連絡資訊的正確性。

變更日誌

變更日期 變更描述
2026年7月29日 重大修訂以增加所需操作的清晰度,以及替代韌體更新方式。
2026年6月18日 參考連結被加入「Linux 作業系統廠商推薦」章節。