Windows 10, 8.1 и Windows 7 позволяют отключить обязательную проверку цифровой подписи драйверов и установить неподписанный драйвер, но если в последних версиях ОС это нужно делать постоянно, изменение опций с помощью bcdedit не поможет. Однако может помочь самоподписание драйвера и его последующая установка, о чем мы и поговорим.
В этой инструкции подробно описано, как самостоятельно подписать драйвер для Windows 10, 8.1 или Windows 7 x64 или 32-bit (x86) для последующей установки в систему навсегда, без отключения проверки цифровой подписи драйверов, избегая при этом ошибок типа "Сторонний INF не содержит информации о подписи".
Что вам понадобится для подписания драйвера
Для выполнения всех следующих действий загрузите и установите с сайта Microsoft следующие инструменты:
- Microsoft Windows SDK для Windows 7 https://www.microsoft.com/en-us/download/details.aspx?id=8279
- Windows Driver Kit 7.1.0 https://www.microsoft.com/en-us/download/details.aspx?id=11800
Из первого набора нужно просто установить Tools, из второго (который представляет собой ISO-образ с установщиком, из которого нужно запустить KitSetup.exe) — выберите Build Environments and Tools (Среды и инструменты сборки).
Обратите внимание: это не последние версии наборов инструментов, но они одинаково подходят для самостоятельной подписи драйверов для последующей установки во всех операционных системах от Windows 10 до Windows 7, не вдаваясь в некоторые дополнительные нюансы в инструкциях.
Процесс самостоятельной подписи драйвера
В процессе, для того чтобы подписать сам драйвер нам нужно: создать сертификат, подписать драйвер этим сертификатом, установить сертификат в систему и установить драйвер. Начнем с .
- Создайте какую-нибудь папку в корне диска С (чтобы потом было легче к ней обращаться), например С:\cert, в которой мы будем работать с сертификатами и драйверами.
- Запустите командную строку от имени администратора (необходимо для 18-го шага). Далее используйте следующие команды по порядку. Файлы драйверов пока не нужны. Во второй команде вам будет предложено ввести пароль, я использую пароль в подсказке, а затем в командах, вы можете использовать свой собственный.
-
cd "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin"
-
makecert -r -sv C:\cert\driver.pvk -n CN="remontka" C:\cert\driver.cer
-
cert2spc C:\cert\driver.cer C:\cert\driver.spc
-
pvk2pfx -pvk C:\cert\driver.pvk -pi password -spc C:\cert\driver.spc -pfx C:\cert\driver.pfx -po password
- До этого момента все должно происходить так, как показано на скриншоте ниже.
- В папке C:\cert создайте подпапку drv и поместите туда файлы драйвера. Но: если вам нужен драйвер только для x64, не копируйте .Inf файл для x86 систем в эту папку и наоборот. В командной строке используйте следующие команды:
-
cd C:\WinDDK\7600.16385.1\bin\selfsign\
-
inf2cat.exe /driver:"C:\cert\drv" /os:7_X64 /verbose
- В предыдущей команде для 32-битного драйвера укажите X86 вместо X64. Если вам предлагается скачать .NET Framework, согласитесь, установите, а затем повторно выполните команду. В идеале вы должны получить сообщение об успехе на .cat файл для подписи. Однако возможны ошибки, о наиболее частых из них можно сказать следующее. После исправления ошибок повторите команду из шага 10.
- DriverVer установлен на неправильную дату — возникает, если дата в файле драйвера до 21 апреля 2009 года. Решение: откройте файл .inf из папки drv в текстовом редакторе (можно использовать Блокнот) и установите другую дату (формат: месяц/день/год) в строке DriverVer.
- Отсутствует запись AMD64 CatalogFile (для 64-битных) или отсутствует запись 32-битного CatalogFile. Решение: открыть файл .inf из папки drv в текстовый редактор и в [Version] добавить строку CatalogFile=catalog.cat
- В результате вы должны получить сообщение: Catalog generation complete with the path to the catalog file, in my case it is C:\cert\drv\catalog.cat. Далее воспользуйтесь следующими командами (требуется подключение к интернету).
-
cd "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin"
-
signtool sign /f C:\cert\driver.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v C:\cert\drv\catalog.cat
- Результат подписания файла драйвера без ошибок на скриншоте ниже. Следующим шагом будет добавление самоподписанного сертификата в список доверенных в системе, это можно сделать следующими двумя командами по порядку
-
certmgr.exe -add C:\cert\driver.cer -s -r localMachine ROOT certmgr.exe -add C:\cert\driver.cer -s -r localMachine TRUSTEDPUBLISHER
- В результате вы должны получить сообщение "CertMgr Succeeded". Если не удалось или certmgr.exe не является внутренней или внешней командой — убедитесь, что командная строка запущена от имени администратора и вы находитесь в правильной папке (см. Шаг 15).
Теперь вы можете закрыть командную строку и установить драйвер из папки C:\cert\drv с помощью диспетчера устройств, или нажав правой кнопкой мыши на .inf и выберите "Установить". Необходимо подтвердить установку драйвера в окне "Не удалось проверить издателя этих драйверов" — нажмите "Установить этот драйвер в любом случае".