sign-file: certs/signing_key.pem: 解决方法

使用ubuntu18.04环境,在make之后,make install 加载时,出现如下错误:

At main.c:158:
    - SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
    - SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178 sign-file: certs/signing_key.pem: No such file or directory
    DEPMOD 4.10.0-20-generic

步骤1.建立x509.genkey文件,内容如下:

[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts

[ req_distinguished_name ]
CN = Modules

[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid

步骤2 执行:

openssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 -config x509.genkey -outform DER -out signing_key.x509 -keyout signing_key.pem

会生成signing_key.pem signing_key.x509 文件

步骤3:移动到指定的位置

mv signing_key.pem signing_key.x509 `find /usr/src/*-generic/certs`
### 解决Makefile编译时签名密钥文件缺失的方法 当遇到`make`编译过程中由于缺少规则而导致的错误,特别是关于证书文件如`signing_key.pem`的情况,可以采取特定措施来解决问题。如果在执行`make`命令期间收到有关无法找到`cert/signing_key.pem`的信息,则表明系统正在寻找用于签署模块的私钥文件。 对于此类问题的一个解决方案是在本地创建所需的签名密钥文件。可以通过运行以下命令来自动生成这些必要的认证文件: ```bash openssl req -newkey rsa:2048 -nodes -keyout certs/signing_key.pem -x509 -days 365 -out certs/signing_key.x509 -subj "/CN=Kernel Module Signing/" ``` 上述命令利用OpenSSL工具生成了一个有效期为一年的新RSA密钥对以及相应的X.509证书[^1]。 之后,为了使新生成的密钥生效并被识别,应当将其复制到适当位置。这通常涉及到将生成的`.pem`和`.x509`文件移至内核源码树中的`certs`目录下,例如通过如下指令完成操作: ```bash mv signing_key.pem signing_key.x509 /usr/src/linux-headers-$(uname -r)/certs/ ``` 此过程确保了编译环境能够访问到正确的签名材料,从而避免因为找不到所需的目标而终止构建流程的问题发生[^2]。 另外,在某些情况下,可能还需要调整配置选项以适应当前的工作环境。具体来说,应该检查并修改内核配置(`.config`)文件内的相关设置项,比如涉及信任根证书的部分。如果发现任何不匹配或不必要的条目,应予以清理或更新,以此减少潜在冲突的可能性[^4]。 最后值得注意的是,不同版本的操作系统及其对应的内核可能会有不同的处理方式;因此建议参照官方文档获取最准确的帮助指南。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知秋贺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值