注意:

使用 mokutil 更新 UEFI 安全引导的签名密钥

本教程说明如何使用计算机所有者密钥 (Machine Owner Key, MOK) 实用程序管理用于 Oracle Linux 上的 UEFI 安全引导的证书。

有关安全引导及其机制的详细背景信息,请参见Oracle Linux: Working With UEFI Secure Boot

简介

计算机所有者密钥 (Machine Owner Key, MOK) 工具用于以下任务:

在 UEFI 安全引导密钥数据库中注册密钥的处理方式有两种:

目标

完成本教程后,您应该能够执行以下操作:

警告:将 MOK 实用程序与 UEK R3 一起使用时存在问题。如果使用此内核,请不要继续本教程。

先决条件

安装 mokutilpesign 软件包

根据 Oracle Linux 系统发出以下命令之一:

使用 UEFI 安全引导密钥数据库注册散列

此注册方法包含两个任务:

这两个任务可以使用同时使用 mokutilpesign 命令的单个命令完成。

  1. /boot/vmlinuz-4.18.0-193.el8.x86_64 为例,键入以下命令:

    sudo mokutil --import-hash $(pesign -P -h -i /boot/vmlinuz-4.18.0-193.el8.x86_64  | cut -f 2 -d ' ')
    
  2. 输入并确认 MOK 注册请求的密码。

    为此目的使用任意密码,但请注意您使用的密码。系统重新引导时会提示您输入该值。

  3. 重新引导系统以完成注册。

  4. 出现提示时,输入导入散列时设置的密码。

使用 UEFI 安全引导密钥数据库注册证书

  1. 下载内核源软件包。

    源软件包包含用于对每个内核和 shim 进行签名的证书密钥。内核源软件包可以是 RHCK 内核的 kernel,也可以是 Unbreakable Enterprise Kernel 的 kernel-uek

    根据 Oracle Linux 系统发出以下命令之一:

    • 在 Oracle Linux 8 系统上,此命令下载 kernelkernel-uek 的最新源软件包。

      sudo dnf download --source kernel|kernel-uek
      
    • 在 Oracle Linux 7 系统上,yumdownloader 命令可用于下载所需的特定内核源软件包版本,例如 kernel-uek-4.14.35-1902.303.4.1.el7uekkernel-2.6.32-754.2.1.el6.x86_64

      类型:

      sudo yumdownloader --source <kernel-version>|<kernel-uek-version>
      
  2. 提取源程序包以访问程序包的扩展验证 (Extended Validation, EV) 证书,例如:

    sudo rpm2cpio ./kernel-uek*.rpm | cpio -idmv
    
  3. 输入并确认 MOK 注册请求的密码。

    为此目的使用任意密码,但请注意您使用的密码。系统重新引导时会提示您输入该值。

    注:请勿导入源软件包中包含的 CA 证书 securebootca.cer。导入 CA 证书允许使用同一 CA 签名的证书的任何内核装入并导致 UEFI 安全引导无效。

  4. 重新引导系统以完成注册。

  5. 出现提示时,输入导入证书时设置的密码。

    该证书将添加到 MOK 列表,并自动传播到此引导时的系统密钥环以及后续引导。

    使用以下步骤可下载每个源软件包的多个版本,从每个源软件包提取证书,然后根据需要将其导入到 UEFI 安全引导数据库。要确定不同最低内核版本所需的软件包版本,请参阅Use the Oracle Linux UEFI Secure Boot Update Notices

更多信息

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle 学习资源管理器。

有关产品文档,请访问 Oracle 帮助中心