Red Hat Training
A Red Hat training course is available for RHEL 8
3.9. 使用私钥签名内核
如果启用了 UEFI 安全引导机制,您可以通过载入签名的内核来获得增强的安全性优势。这部分论述了如何使用现有私钥为内核签名。如果您只需要为内核模块签名,您可以跳过此部分。
先决条件
- 您已生成了公钥和私钥对,并了解公钥的有效性日期。详情请参阅生成公钥和私钥对。
- 您已在目标系统中注册了公钥。详情请查看在 MOK 列表中添加公钥在目标系统中注册公钥。
- 您有一个可用于签名的 ELF 格式的内核镜像。
流程
在 x64 构架中:
创建签名的镜像:
# pesign --certificate 'Custom Secure Boot key' \ --in vmlinuz-version \ --sign \ --out vmlinuz-version.signed
使用
vmlinuz
文件的版本后缀替换version
,将Custom Secure Boot 密钥
替换为您之前选择的名称。可选:检查签名:
# pesign --show-signature \ --in vmlinuz-version.signed
使用签名镜像覆盖未签名的镜像:
# mv vmlinuz-version.signed vmlinuz-version
在 64 位 ARM 架构中:
解压缩
vmlinuz
文件:# zcat vmlinuz-version > vmlinux-version
创建签名的镜像:
# pesign --certificate 'Custom Secure Boot key' \ --in vmlinux-version \ --sign \ --out vmlinux-version.signed
可选:检查签名:
# pesign --show-signature \ --in vmlinux-version.signed
压缩
vmlinux
文件:# gzip --to-stdout vmlinux-version.signed > vmlinuz-version
删除未压缩的
vmlinux
文件:# rm vmlinux-version*