Red Hat Training
A Red Hat training course is available for RHEL 8
3.6. 生成公钥和私钥对
您需要生成一个公共和私有 X.509 密钥对,以便在启用了安全引导的系统上使用自定义内核或自定义内核模块。之后您将使用私钥为内核或内核模块签名。您还必须将对应的公钥添加到用于安全引导的机器所有者密钥(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 'pkcs11:token=NSS%20FIPS%20140-2%20Certificate%20DB'
默认情况下,如果没有指定
--token
,则使用pkcs11:token=NSS%20Certificate%20DB
。
公钥和私钥现在存储在 /etc/pki/pesign/
目录中。
重要
在 RHEL 8 中,密钥对的有效性日期无关紧要。密钥不会过期,但对于良好的安全实践,建议在签名密钥的有效周期内签名内核和内核模块。但是,sign-file
工具不会发出警告,无论有效期如何,密钥都将可用。
其它资源
-
openssl(1)
手册页 - RHEL 安全指南
- 通过在 MOK 列表中添加公钥在目标系统中注册公钥