Đầu tiên: tạo khóa riêng
openssl req -new -nodes -utf8 -sha256 -ngày 36500 -batch -x509 \
-subj "/ CN = Khóa hạt nhân" -formform DER -out kernel.der \
-keyout kernel.key
Hãy thử biên dịch kernel linux với CONFIG_EFI_STUB và nhúng initramfs vào nó như được mô tả ở đây: https://prosauce.org/blog/2015/10/31/boote-linux-seciously , để ký các mô-đun bạn có thể sử dụng tập lệnh tiếp theo:
/ usr / src / linux-headers - $ (uname -r) / scripts / đăng nhập tập tin sha256 kernel.key kernel.der module.ko
Sau đó, tạo tệp với cmdline kernel cho máy tính xách tay của bạn, và tạo một hình ảnh và sao chép nó vào thư mục khởi động efi như thế này:
# objcopy \
--add-part .osrel = / etc / os-release --change-part-vma .osrel = 0x20000 \
--add-phần .cmdline = / tmp / cmdline --change-phần-vma .cmdline = 0x30000 \
--add-phần .linux = / boot / vmlinuz --change-phần-vma .linux = 0x2000000 \
--add-phần .initrd = / boot / initrd.img --change-part-vma .initrd = 0x3000000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub linux.efi
# mkdir -p / boot / efi / EFI / BOOT
# sbsign --key /root/keys/ISK.key --cert /root/keys/ISK.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI linux.efi / boot / efi / EFI / BOOT /BOOTX64.EFI
Để cài đặt khóa riêng vào firmware MB, bạn có thể thực hiện các lệnh như thế này:
openssl x509 -inform der -in kernel.der -outform pem -out kernel.pem
cert-to-efi-sig-list -g "$ (uuidgen)" kernel.pem kernel.esl
đăng nhập-efi-sig-list -k KEK.key -c KEK.pem kernel kernel.esl kernel.auth