为安全启动签名自定义编译的内核

为安全启动签名自定义编译的内核

我正在按照给出的步骤这里生成密钥以签署我自己编译的内核副本。但是,在这个过程的中途,当我尝试通过运行以下命令验证“主证书是否已使用其私钥签名”时

$ openssl verify ./master-public.pem

失败并显示以下输出:

C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
error 18 at 0 depth lookup: self signed certificate
error ./master-public.pem: verification failed

根据文档的预期输出是:

./master-public.pem: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority
error 18 at 0 depth lookup:self signed certificate
OK

显而易见,我不是安全启动相关恶作剧方面的专家,并且花了很长时间试图找出问题所在却没有任何线索。上面提到的网页也没有提供任何帮助。

有人能告诉我为什么会发生此错误,以及如何修复它吗?Ubunutu Wiki 上的说明是否过时了?如果是,是否有可用的最新说明?我想要做的就是编译并运行staging内核副本并启用安全启动。

答案1

我最终

  • make bindep-pkg使用 vanilla TGZ构建我自己的内核 https://kernel.org
  • 使用 kexec 启动

因此不需要签名:UEFI 启动官方签名的 Ubuntu 内核,然后我的自定义内核作为 cron@reboot任务从 Linux 用户空间加载。

答案2

给出的步骤这里确实有效。

相关内容