Enable HTTPS boot encryption
HTTPS boot encryption protects boot files in transit and authenticates the download server during network boot. Configure UEFI firmware to download the kernel and initial RAM file system (initramfs) over HTTPS with transport encryption and signature verification.
HTTPS boot encryption on RHEL Copy linkLink copied!
HTTPS boot encryption downloads the kernel and initial RAM file system (initramfs) over HTTPS with transport encryption, digital signature verification, and server authentication before boot.
With firmware Transport Layer Security (TLS) support and trusted security certificates, you manage HTTPS boot encryption on your system. Digital signatures ensure boot file integrity and reliability before the firmware loads the downloaded image. The firmware must have decryption capabilities. Plain HTTP boot does not provide the same transport protection as HTTPS boot encryption.
You configure the CA certificate in client firmware in UEFI mode for UEFI HTTPS boot without a graphical interface.
Each firmware vendor has its own procedure for enrolling certificates. Consult your firmware vendor documentation to enable HTTPS boot encryption.
Configure HTTPS boot encryption on TianoCore Copy linkLink copied!
To enable UEFI HTTPS boot for the kernel and initial RAM file system (initramfs), configure OVMF or other TianoCore-based firmware to download them over HTTPS, set the boot source, enroll a Certificate Authority (CA) certificate, and put the UEFI HTTPS boot option first in the boot order.
Before you begin Copy linkLink copied!
- You have root privileges on your system.
- You have an HTTPS server configured and serving signed kernel and initial RAM file system images.
- You have a CA certificate file available in the
/etc/pki/directory on your HTTPS server. - Optional: You have a Dynamic Host Configuration Protocol (DHCP) server configured with a boot file option, or the HTTPS boot server URL is configured in the firmware.
Procedure Copy linkLink copied!
Results Copy linkLink copied!
- After the system reboots, the firmware starts the UEFI HTTPS boot process and downloads the boot image from the configured server.
Load the CA certificate for HTTPS boot Copy linkLink copied!
Load the EFI signature list for the HTTPS boot CA certificate on Quick EMUlator (QEMU) or libvirt virtual machines when you do not enroll the certificate through the firmware interface.
Before you begin Copy linkLink copied!
- You created a root CA signature list file in EFI signature list format with the
.eslextension. - You have root privileges on the host system.
- The virtual machine uses Open Virtual Machine Firmware (OVMF) with HTTPS boot support.
The signature list file contains your HTTPS boot Certificate Authority certificate in EFI Signature List format.
When the HTTPS server uses a CA certificate from the host truststore, run update-ca-trust on the host and use /etc/pki/ca-trust/extracted/edk2/cacerts.bin as the file in the fw_cfg parameter.
When you use a dedicated CA certificate, create an EFI signature list file with the .esl extension that contains only that certificate before you load it through fw_cfg.
Procedure Copy linkLink copied!
- For QEMU, add the following parameter to the
qemu-system-x86_64command:# qemu-system-x86_64 <existing-qemu-options> -fw_cfg name=etc/edk2/https/cacerts,file=<path-to-root-ca>.esl - For libvirt, add the following XML inside the
domainelement of the virtual machine configuration:<qemu:commandline> <qemu:arg value='-fw_cfg'/> <qemu:arg value='name=etc/edk2/https/cacerts,file=<path-to-root-ca>.esl'/> </qemu:commandline>Important The name value must be
etc/edk2/https/cacerts. This is how EDK2 identifies the root CA signature list.
Results Copy linkLink copied!
- Start the virtual machine and confirm that UEFI HTTPS boot completes without a certificate trust error from the configured HTTPS server.