SYSTEMD-SBSIGN(1) systemd-sbsign SYSTEMD-SBSIGN(1) systemd-sbsign - PE EFI systemd-sbsign [...] {} systemd-sbsign PE EFI. sign PE EFI. PE . PE . . PE --output=. 257. : --output= PE --prepare-offline-signing. 257. --private-key= --private-key-source=[:] --certificate= --certificate-source=[:] sign. --certificate= X.509 PEM URI OpenSSL --certificate-source. --certificate-source "file" "provider" "provider:pkcs11". --private-key= URI OpenSSL --private-key-source= "type:name" "engine:pkcs11". OpenSSL PE. 257. --prepare-offline-signing sign --output= PE . PE --signed-data= --signed-data-signature=. 258. --signed-data=, --signed-data-signature= ( --output= --prepare-offline-signing) sign. 258. -h --help . --version . 1. EFI PE systemd-boot: SD_BOOT="$(find /usr/lib/systemd/boot/efi/ -name "systemd-boot*.efi" | head -n1)" # Extract the data that should be signed offline. /usr/lib/systemd/systemd-sbsign \ sign \ --certificate=secure-boot-certificate.pem \ --output=signed-data.bin \ --prepare-offline-signing \ "$SD_BOOT" # Sign the data out-of-band. This step usually happens out-of-band on a separate system. openssl dgst -sha256 -sign secure-boot-private-key.pem -out signed-data.sig signed-data.bin # Attach the signed data and its signature to the systemd-boot PE binary. /usr/lib/systemd/systemd-sbsign \ sign \ --certificate=secure-boot-certificate.pem \ --output="$SD_BOOT.signed" \ --signed-data=signed-data.bin \ --signed-data-signature=signed-data.sig \ "$SD_BOOT" bootctl(1) 3 . . : . systemd 260.2 SYSTEMD-SBSIGN(1)