25.3. 在 QEMU 和 libvirt 上载入 HTTPS 引导加密的 CA 证书
当您没有通过固件接口注册证书时,在 Quick EMUlator (QEMU)或 libvirt 虚拟机上加载 HTTPS 引导 CA 证书的 EFI 签名列表。
先决条件
-
您以 EFI 签名列表格式创建了一个根 CA 签名列表文件,扩展
.esl。 - 在主机系统上具有 root 权限。
- 虚拟机使用带有 HTTPS 引导支持的 Open Virtual Machine Firmware (OVMF)。
注意
签名列表文件包含 EFI 签名列表格式的 HTTPS 引导证书颁发机构证书。
当 HTTPS 服务器使用主机信任存储中的 CA 证书时,在主机上运行 update-ca-trust,并使用 /etc/pki/ca-trust/extracted/edk2/cacerts.bin 作为 fw_cfg 参数中的文件。
当使用专用 CA 证书时,在通过 fw_cfg 加载前,创建一个带有 .esl 扩展的 EFI 签名列表文件,该文件只包含那个证书。
流程
使用以下方法之一载入 CA 证书:
对于 QEMU,在
qemu-system-x86_64命令中添加以下参数:# qemu-system-x86_64 <existing-qemu-options> -fw_cfg name=etc/edk2/https/cacerts,file=<path-to-root-ca>.esl对于 libvirt,在虚拟机配置的
domain元素中添加以下 XML:<qemu:commandline> <qemu:arg value='-fw_cfg'/> <qemu:arg value='name=etc/edk2/https/cacerts,file=<path-to-root-ca>.esl'/> </qemu:commandline>重要name 值必须是
etc/edk2/https/cacerts。这是 EDK2 如何标识 root CA 签名列表。
验证
- 启动虚拟机并确认 UEFI HTTPS 引导完成,但没有来自配置的 HTTPS 服务器的证书信任错误。