Отсутствие файла подписи OpenSSL signature_key.pem приводит к ошибке при загрузке модулей ядра

1213
Arnabjyoti Kalita

У меня проблемы при загрузке / установке модуля ядра. Модуль ядра собирается успешно, но всякий раз, когда я пытаюсь выполнить module_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 

Я прочитал об этой проблеме и понял, что ядро ​​теперь начало загружать только правильно подписанные модули. Я обнаружил, что каталог исходных кодов ядра /usr/src/<linux version>/certsв моей системе не имеет signing_key.pemфайла закрытого ключа, из-за которого я вижу эту ошибку.

Что я должен делать ? Можно ли вручную создать signing_key.pemфайл и использовать его дальше? Какие были бы хорошие методы для этого? Поможет ли openssl.cnfмне в этом вопрос генерация секретного ключа / файла сертификата ? Или я должен вообще избегать использования подписанных модулей и пытаться загружать модули без проверки?

Я использую Ubuntu 17.04 с ядром 4.10.0-20-generic .

2
Я тоже испытываю это. Несмотря на то, что я вроде все компилирую нормально, драйвер ядра никогда не загружается. ben-Nabiy Derush 6 лет назад 0

1 ответ на вопрос

1
cryptoboy

В вашей корневой папке ядра Linux, которую вы компилируете, перейдите в папку certs и запустите:

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

Где 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 

Ссылка на: https://wiki.gentoo.org/wiki/Signed_kernel_module_support

Вариант 2 - отключить автоматическую подпись модулей в конфиге make menuconfigилиmake xconfig