将X.509证书添加到UEFI安全启动数据库?


7

我最近在带有华硕Z87-K主板的定制台式电脑上安装了Fedora 20。鉴于一些众所周知的错误,我为我的GeForce 630安装了NVIDIA专有驱动程序,并禁用了nouveau驱动程序。

正确完成驱动程序安装后,在此期间使用新生成的密钥对对模块进行签名,创建了x.509证书并自动放入

/usr/share/nvidia/certificate.der

但是,从那时起,计算机无法在启用UEFI安全启动选项的情况下启动。切换到textmode并运行时 nvidia-modprobe,我发现没有加载NVIDIA专有模块。

当我在UEFI菜单中禁用安全启动时,计算机将启动并使用已安装的驱动程序平稳运行。

为了避免在不安全模式下启动的缺点,我想知道在哪里放置NVIDIA模块的x.509证书,以便内核识别它,所以我不必关闭安全启动。

Answers:


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 目录树。

也就是说,我自己从来没有做过这个具体的事情,因为我没有在我的任何电脑上使用专有的视频驱动程序。可以想象,你需要采取一些额外措施。


事实证明,您可以在命令行中使用mokutil。
Fabián Heredia Montiel

0

您可能希望使用mokutil来注册密钥。

sudo mokutil --import <der file>

您可以测试是否已注册密钥

mokutil --test-key <der file>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.