Vreau să folosesc Secure Boot cu propriile mele chei și cu nucleele pe care le semnez. L-am făcut pe Grub să pornească, dar nu cu nucleul semnat. Primesc acest mesaj: „Eroare: /vmlinuz-5.4.0.91-generic are semnătură nevalidă”.
Iată ce am făcut:
cheile mkdir
taste cd
efi-readvar -v dbx -o dbx.esl
# (reporniți și ștergeți cheile implicite de pornire sigură din configurația firmware-ului)
export myuuid=e9ffcff5-9186-4da1-ae89-654000af85eb
# creați chei
openssl req -subj "/CN=SecBoot PK cert/" -new -x509 -newkey rsa:2048 -nodes -days 730 -outform PEM -keyout "PK.key" -out "PK.pem"
openssl req -subj "/CN=SecBoot KEK cert/" -new -x509 -newkey rsa:2048 -nodes -days 730 -outform PEM -keyout "KEK.key" -out "KEK.pem"
openssl req -subj "/CN=SecBoot db cert/" -new -x509 -newkey rsa:2048 -nodes -days 730 -outform PEM -keyout "db.key" -out "db.pem"
cert-to-efi-sig-list -g „$myuuid” PK.pem PK.esl
cert-to-efi-sig-list -g „$myuuid” KEK.pem KEK.esl
cert-to-efi-sig-list -g „$myuuid” db.pem db.esl
#chei semn
semn-efi-sig-list -g „$myuuid” -c PK.pem -k PK.key PK PK.esl PK.auth
semn-efi-sig-list -g „$myuuid” -c PK.pem -k PK.key KEK KEK.esl KEK.auth
semn-efi-sig-list -g „$myuuid” -c KEK.pem -k KEK.key db db.esl db.auth
semn-efi-sig-list -g „$myuuid” -c KEK.pem -k KEK.key dbx dbx.esl dbx.auth
# adăugați chei în firmware
efi-updatevar -k PK.key -g „$myuuid” -f PK.auth PK
efi-updatevar -k PK.key -g "$myuuid" -f KEK.auth KEK
efi-updatevar -k KEK.key -g "$myuuid" -f db.auth db
efi-updatevar -k KEK.key -g "$myuuid" -f dbx.auth dbx
# eliminați semnătura curentă (opțional, am încercat să elimin și nu să elimin)
sbattach --remove /boot/efi/EFI/BOOT/BOOTX64.EFI
sbattach --remove /boot/efi/EFI/ubuntu/grubx64.efi
sbattach --remove /boot/vmlinuz-5.4.0.91-generic
# binare de semne
sbsign --key db.key --cert db.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI /boot/efi/EFI/BOOT/BOOTX64.EFI
sbsign --key db.key --cert db.pem --output /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/ubuntu/grubx64.efi
sbsign --key db.key --cert db.pem --output /boot/vmlinuz-5.4.0.91-generic /boot/vmlinuz-5.4.0.91-generic
Nota 1: Dacă este posibil, nu vreau să folosesc mok, deoarece necesită o repornire și încerc să instalez folosind un script nesupravegheat.
Nota 2: Am încercat să folosesc shim-signed și lucrări de pornire, dar pornește chiar dacă nu semnez nucleul, așa că nu îl consider sigur, deoarece pornește cu orice nucleu.
EDIT: Eu folosesc Ubuntu 20.04.3