ubuntu - modprobe module.ko 上的 "PKCS#7 signature not signed with a trusted key"错误

标签 ubuntu

在 Ubuntu 18.04.3 上,我想签署一个我在同一台 Ubuntu 机器上构建的驱动程序并通过 modprobe 加载它。这台机器启用了 SecureBoot。

在构建驱动程序以获取 .ko 文件后,我尝试按如下方式对模块进行签名:

  • 我通过运行创建了一个 key :
  • sudo update-secureboot-policy --new-key
    

    像“ 我怎样才能对驱动程序进行非自动签名? ”部分 here说要做。
    (没有输出/错误信息)
  • 我试图通过运行来注册 key :
  • sudo update-secureboot-policy --enroll-key**
    

    正如同一个 page 所建议的那样.
    (这导致单行输出,我不知道该怎么做:
    “未安装 DKMS 模块。”)
  • 然后我尝试通过运行以下命令对模块进行签名:
  • sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der my_module.ko
    

    正如它所说的那样here . (没有输出/错误信息)

    但是当我尝试通过 modprobe 安装模块时:
    sudo modprobe my_module.ko**
    

    我得到错误:

    modprobe: ERROR: could not insert 'gve': Operation not permitted



    我认为相关的 dmesg 条目说:

    PKCS#7 signature not sugned with a trusted key



    我不确定这是否意味着我没有注册正确创建的 key 或可能存在什么其他问题。

    这是我通过运行以下命令得到的输出:
    $ mokutil --test-key /var/lib/shim-signed/mok/MOLK.der
    

    输出是:
    /var/lib/shim-signed/mok/MOLK.der 未注册
    $ sudo mokutil --import /var/lib/shim-signed/mok/MOLK.der
    

    输出是:
    跳过:/var/lib/shim-signed/mok/MOLK.der 已经在注册请求中

    好的,我认为我的帖子可能与 this 重复S/O帖子,但我实际上正在寻找一个脚本来下载,构建,签名和安装驱动程序,但似乎重新启动是注册 key 的必要部分,这是签署驱动程序的必要部分。有没有办法让我在脚本中自动化所有这些?

    最佳答案

    这是一些解决方案。

    sudo -i 
    mkdir /root/module-signing
    cd /root/module-signing
    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME"
    chmod 600 MOK.priv 
    mokutil --import /root/module-signing/MOK.der 
    input password: 
    input password again:
    reboot
    

    注册 MOK,然后继续,然后选择是注册 key ,然后重新输入密码。然后选择确定。

    关于ubuntu - modprobe module.ko 上的 "PKCS#7 signature not signed with a trusted key"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60009311/

    相关文章:

    ubuntu - 带有 Ubuntu 的 Raspberry Pi 4 B 上带有 MCP2515 的 CAN 屏蔽

    ubuntu - Icinga2 -- 主机的 display_name 被 icingaweb2 忽略

    postgresql - iReport 设计器 : permission denied for relation

    java - 每次关闭终端时都需要进行 Maven 设置

    Gitlab-ci 和 deploy.sh

    javascript - 无法在 ubuntu 中读取 VS Code 中的 .eslintrc.json 文件

    linux - 如何在 Ubuntu 中安装 viber?

    c++ - Bii 代码似乎损坏了我的 cmake

    mysql - 使用 puppet 安装 mysql-server

    ubuntu - VirtualBox Ubuntu 客户机上的 nginx 提供过时的内容