J’ai testé depuis une installation toute fraîche.
Il faut bien créer ce fichier .csv, et l’ajouter dans le grubx64.efi. Je ne comprends toujours pas pourquoi.
Il faut bien créer les clés. J’ai chercher pour signer avec un certificat fedora, mais je n’ai pas trouvé les clés privées, ce qui est plutôt logique, si quelqu’un les a, ou alors sait où elles se cachent, je prends, et cela éviterait la phase de création de clés.
Alors il existe plusieurs méthodes pour le faire, je propose ici de passer par akmod, que je trouve plus simple d’utilisation :
shim-x64 et mokutil sont déjà installé sur une fedora-workstation. Sans doute pour importer la clé mok de fedora à l’installation. (je ne sais pas si kernel-devel est vraiment nécessaire, mais à mon avis installé par akmods)
sudo dnf install rEFInd sbsigntools kernel-devel akmods
Générer sa clé :
sudo kmodgenca
Compléter le formulaire
ou avec l’option -a si vous ne souhaitez pas compléter le formulaire.
Les clés se trouvent dans
sudo ls /etc/pki/akmods/certs/
sudo ls /etc/pki/akmods/private/
Charger sa clé par MOK
sudo mokutil --import /etc/pki/akmods/certs/public_key.der
Il vous demande de taper un mot de passe.
Attention, lors de la phase de redémarrage, l’interface MOK est en clavier QWERTY. J’ai donc utilisé un mot de passe simple, qui ne sert qu’une seul fois.
Redémarrer
Au démarrage, vous allez tomber sur l’interface mok, suivre les instructions pour inscrire la clé, taper votre mot de passe. Vous pouvez également vérifier si c’est bien votre clé avant de l’enregistrer. Puis l’ordinateur redémarre.
Convertir le .der en .pem utilisable par sbsign
sudo openssl x509 -in /etc/pki/akmods/certs/public_key.der -inform DER -outform PEM -out /etc/pki/akmods/certs/public_key.pem
Cacher le fichier à la vu de tout le monde
sudo chmod o-r public_key.pem
Installer refind
sudo refind-install --shim /boot/efi/EFI/fedora/shimx64.efi
Créer un fichier .csv dans /boot/efi/EFI/refind/refind_x64.csv et ajouter :
sudo sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md
grubx64,1,Roderick W. Smith,rEFInd,0.13.3,https://www.rodsbooks.com/refind
Modifier le grubx64.efi en y ajoutant les données du fichier csv :
sudo objcopy --set-section-alignment '.sbat=512' --add-section .sbat=/boot/efi/EFI/refind/refind_x64.csv --adjust-section-vma .sbat+10000000 /boot/efi/EFI/refind/grubx64.efi
Signer le chargeur de démarrage :
sudo sbsign --key /etc/pki/akmods/private/private_key.priv --cert /etc/pki/akmods/certs/public_key.pem --output /boot/efi/EFI/refind/grubx64.efi /boot/efi/EFI/refind/grubx64.efi
Redémarrer
Cela ne me convient pas tout à fait, bien que ce certificat est créé par l’installation des modules graphiques nvidia par exemple, et donc évite la multiplication des certificats. Ne possédant pas de carte nvidia ou d’objet avec des drivers exotiques à charger, je ne peux pas vérifier qu’un certificat est bien créer et inscrit par mok ou autre. C’est une piste à creuser pour éviter la partie “mot de passe”, si cela est fait de façon “transparente”.
Sinon, j’aurai lu que fedora utiliserai des certificats provenant de chez microsoft, mais j’ai lu cela en diagonale sur un forum, donc je ne suis pas vraiment en capacité de vérifier cette information.