11.8. 通过在 MOK 列表中添加公钥在目标系统中注册公钥

您必须在要验证并载入内核或内核模块的所有系统上注册您的公钥。您可以以不同的方式在目标系统上导入公钥,以便平台密钥环(.platform)能够使用公钥来验证内核或内核模块。

当 RHEL 9 在启用了安全引导机制的基于 UEFI 的系统上引导时,内核会将所有安全引导 db 密钥数据库中的公钥加载到平台密钥环(.platform)上。同时,内核排除了撤销的密钥的 dbx 数据库中的密钥。

您可以使用 Machine Owner Key (MOK)功能来扩展 UEFI 安全引导密钥数据库。当 RHEL 9 在启用了安全引导机制的 UEFI 系统上引导时,除了密钥数据库中的密钥外,MOK 列表中的密钥也会被添加到平台密钥环(.platform)中。和安全引导数据库密钥相似,MOK 列表密钥会被安全地永久存储。但它们是两个独立的工具。shimMokManagerGRUBmokutil 工具都支持 MOK 工具。

注意

为了便于对系统中的内核模块进行身份验证,请您的系统供应商将公钥合并到其工厂固件镜像中的 UEFI 安全引导密钥数据库中。

先决条件

步骤

  1. 将您的公钥导出到 sb_cert.cer 文件中:

    # certutil -d /etc/pki/pesign \
               -n 'Custom Secure Boot key' \
               -Lr \
               > sb_cert.cer
  2. 将您的公钥导入到 MOK 列表中:

    # mokutil --import sb_cert.cer
  3. 输入此 MOK 注册请求的新密码。
  4. 重启机器。

    shim 引导装载程序会注意到待处理的 MOK 密钥注册请求,并启动 MokManager.efi,以使您从 UEFI 控制台完成注册。

  5. 选择 Enroll MOK,在提示时输入之前与此请求关联的密码,并确认注册。

    您的公钥已添加到 MOK 列表中,这是永久的。

    密钥位于 MOK 列表中后,它将会在启用 UEFI 安全引导时自动将其传播到此列表上的 .platform 密钥环中。