將 X.509 憑證新增至 UEFI 安全啟動資料庫?

將 X.509 憑證新增至 UEFI 安全啟動資料庫?

我最近在配備華碩 Z87-K 主機板的客製化桌上型電腦上安裝了 Fedora 20。鑑於一些眾所周知的錯誤,我為我的 GeForce 630 安裝了 NVIDIA 專有驅動程序,並停用了 nouveau 驅動程式。

正確完成驅動程式安裝後(在此期間使用新產生的金鑰對模組進行簽署),將建立 x.509 憑證並自動放置在

/usr/share/nvidia/certificate.der

但是,從那時起,電腦將無法在啟用 UEFI 安全啟動選項的情況下啟動。當切換到文字模式並運行時nvidia-modprobe,我發現NVIDIA專有模組沒有載入。

當我在 UEFI 選單中停用安全啟動時,電腦會啟動並使用已安裝的驅動程式順利運行。

為了避免以不安全模式啟動的缺點,我想知道將 NVIDIA 模組的 x.509 憑證放置在哪裡,以便核心能夠識別它,這樣我就不必關閉安全啟動。

答案1

您應該能夠使用載入證書,MokManager.efi以便 Shim 識別它,從而被核心接受。我不知道 Fedora 是否設定了 GRUB 以便您可以MokManager.efi自己啟動。如果沒有,請嘗試使用 EFI shell 啟動(停用安全啟動)USB 隨身碟或rEFInd。然後您應該能夠啟動MokManager.efi並載入證書檔案。 (它需要與實用程式儲存在同一磁碟上MokManager.efi——可能/boot/efi來自 Fedora 內部。)

我很確定有一種方法可以從 Linux 內部將憑證新增至 NVRAM,以便 Shim 會注意到它並詢問您下次重新啟動時是否應該使用它,但我不知道它到底是什麼。據推測,這涉及將文件寫入/sys/firmware/efi目錄樹中的某個位置。

也就是說,我從來不需要自己做這個特定的事情,因為我不在我的任何電腦上使用專有的視訊驅動程式。可以想像,您需要採取一些額外的步驟。

答案2

您需要使用 mokutil 來註冊金鑰。

sudo mokutil --import <der file>

您可以測試密鑰是否已註冊

mokutil --test-key <der file>

相關內容