21.6. 生成公钥和私钥对
要在启用了安全引导的系统上使用自定义内核或自定义内核模块,您必须生成一个公钥和私有 X.509 密钥对。您可以使用生成的私钥为内核或内核模块签名。您还可以通过在向安全引导的 Machine Owner Key (MOK)中添加相应的公钥来验证签名的内核或内核模块。
警告
应用强大的安全措施和访问策略来保护您的私钥内容。对于一个恶意的用户,可以使用这个密钥破坏所有由对应公钥验证的系统。
步骤
创建一个 X.509 公钥和私钥对:
如果您只想为自定义内核 模块 签名:
# efikeygen --dbdir /etc/pki/pesign \ --self-sign \ --module \ --common-name 'CN=Organization signing key' \ --nickname 'Custom Secure Boot key'
如果要为自定义 内核 签名:
# efikeygen --dbdir /etc/pki/pesign \ --self-sign \ --kernel \ --common-name 'CN=Organization signing key' \ --nickname 'Custom Secure Boot key'
当 RHEL 系统运行 FIPS 模式时:
# efikeygen --dbdir /etc/pki/pesign \ --self-sign \ --kernel \ --common-name 'CN=Organization signing key' \ --nickname 'Custom Secure Boot key' --token 'NSS FIPS 140-2 Certificate DB'
注意在 FIPS 模式下,您必须使用
--token
选项,以便efikeygen
在 PKI 数据库中找到默认的"NSS Certificate DB"令牌。公钥和私钥现在存储在
/etc/pki/pesign/
目录中。
重要
好的安全实践是在签名密钥的有效周期内为内核和内核模块签名。但是,sign-file
工具不会警告您,无论有效期日期如何,密钥都可以在 Red Hat Enterprise Linux 9 中使用。
其他资源
-
openssl(1)
手册页 - RHEL 安全指南
- 通过在 MOK 列表中添加公钥在目标系统中注册公钥