20.8. 通过在 MOK 列表中添加公钥在目标系统中注册公钥
您必须在要验证并载入内核或内核模块的所有系统上注册您的公钥。您可以以不同的方式在目标系统上导入公钥,以便平台密钥环(.platform
)能够使用公钥来验证内核或内核模块。
当 RHEL 9 在启用了安全引导机制的基于 UEFI 的系统上引导时,内核会将所有安全引导 db
密钥数据库中的公钥加载到平台密钥环(.platform
)上。同时,内核排除了撤销的密钥的 dbx
数据库中的密钥。
您可以使用 Machine Owner Key (MOK)功能来扩展 UEFI 安全引导密钥数据库。当 RHEL 9 在启用了安全引导机制的 UEFI 系统上引导时,除了密钥数据库中的密钥外,MOK 列表中的密钥也会被添加到平台密钥环(.platform
)中。和安全引导数据库密钥相似,MOK 列表密钥会被安全地永久存储。但它们是两个独立的工具。shim
、MokManager
、GRUB
和 mokutil
工具都支持 MOK 工具。
为了便于对系统中的内核模块进行身份验证,请您的系统供应商将公钥合并到其工厂固件镜像中的 UEFI 安全引导密钥数据库中。
先决条件
- 您已生成了一个公钥和私钥对,并了解公钥的有效日期。详情请参阅生成公钥和私钥对。
步骤
将您的公钥导出到
sb_cert.cer
文件中:# certutil -d /etc/pki/pesign \ -n 'Custom Secure Boot key' \ -Lr \ > sb_cert.cer
将您的公钥导入到 MOK 列表中:
# mokutil --import sb_cert.cer
- 输入此 MOK 注册请求的新密码。
重启机器。
shim
引导装载程序会注意到待处理的 MOK 密钥注册请求,并启动MokManager.efi
,以使您从 UEFI 控制台完成注册。选择
Enroll MOK
,在提示时输入之前与此请求关联的密码,并确认注册。您的公钥已添加到 MOK 列表中,这是永久的。
密钥位于 MOK 列表中后,它将会在启用 UEFI 安全引导时自动将其传播到此列表上的
.platform
密钥环中。