3.10. 使用私钥签名 GRUB 构建
在启用了 UEFI 安全引导机制的系统上,您可以使用自定义的现有私钥为 GRUB 构建签名。如果您使用自定义 GRUB 构建,或者已经从系统中删除 Microsoft 信任锚,则您必须执行此操作。
先决条件
- 您已生成了一个公钥和私钥对,并了解公钥的有效日期。详情请参阅生成公钥和私钥对。
- 您已在目标系统上注册了公钥。详情请查看在 MOK 列表中添加公钥在目标系统中注册公钥。
- 您有一个可用于签名的 GRUB EFI 二进制文件。
流程
在 x64 构架上:
创建一个签名的 GRUB EFI 二进制文件:
# pesign --in /boot/efi/EFI/redhat/grubx64.efi \ --out /boot/efi/EFI/redhat/grubx64.efi.signed \ --certificate 'Custom Secure Boot key' \ --sign
将
Custom Secure Boot key
替换为您之前选择的名称。可选:检查签名:
# pesign --in /boot/efi/EFI/redhat/grubx64.efi.signed \ --show-signature
使用签名的二进制文件覆盖未签名的二进制文件:
# mv /boot/efi/EFI/redhat/grubx64.efi.signed \ /boot/efi/EFI/redhat/grubx64.efi
在 64 位 ARM 架构中:
创建一个签名的 GRUB EFI 二进制文件:
# pesign --in /boot/efi/EFI/redhat/grubaa64.efi \ --out /boot/efi/EFI/redhat/grubaa64.efi.signed \ --certificate 'Custom Secure Boot key' \ --sign
将
Custom Secure Boot key
替换为您之前选择的名称。可选:检查签名:
# pesign --in /boot/efi/EFI/redhat/grubaa64.efi.signed \ --show-signature
使用签名的二进制文件覆盖未签名的二进制文件:
# mv /boot/efi/EFI/redhat/grubaa64.efi.signed \ /boot/efi/EFI/redhat/grubaa64.efi