Как подписать драйвер Windows 10, 8.1 и Windows 7 x64 и x86

Как самостоятельно подписать драйвер WindowsWindows 10, 8.1 и Windows 7 позволяют отключить обязательную проверку цифровой подписи драйверов и установить неподписанный драйвер, однако если в последних версиях ОС это нужно сделать на постоянной основе, изменение опций с помощью bcdedit не помогает. Однако, может помочь самостоятельная подпись драйвера и его последующая установка, о чем и поговорим.

В этой инструкции подробно о том, как самостоятельно подписать драйвер для Windows 10, 8.1 или Windows 7 x64 или 32-бит (x86) для последующей установки в системе на постоянной основе без отключения проверки цифровой подписи драйверов, избежав при этом ошибок наподобие «INF стороннего производителя не содержит информации о подписи».

Что потребуется для подписи драйвера

Для того, чтобы выполнить все описанные далее шаги, скачайте и установите следующие инструменты с сайта Майкрософт:

Из первого набора достаточно будет установить Tools, из второго (представляет собой ISO-образ с установщиком, с которого нужно запустить KitSetup.exe) — выбрать Build Environments и Tools.

Обратите внимание: это не последние версии наборов инструментов, но они в равной степени подойдут для самостоятельной подписи драйверов для последующей установки во всех ОС от Windows 10 до Windows 7, при этом в инструкции не потребуется вдаваться в некоторые дополнительные нюансы.

Процесс самостоятельной подписи драйвера

В процессе для того, чтобы подписать драйвер самостоятельно, нам потребуется: создать сертификат, подписать драйвер этим сертификатом, установить сертификат в системе и установить драйвер. Начнем.

  1. Создайте в корне диска C какую-либо папку (так к ней проще будет обращаться в дальнейшем), например, C:\cert, где мы будем работать с сертификатами и драйверами.
  2. Запустите командную строку от имени администратора (нужны для 18-го шага). Далее используем следующие команды по порядку. Файлы драйвера пока не потребуются. Во время выполнения второй команды вас попросят ввести пароль, я использую password в окне запроса и далее в командах, вы можете использовать свой.
  3. cd "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin"
  4. makecert -r -sv C:\cert\driver.pvk -n CN="remontka" C:\cert\driver.cer
  5. cert2spc C:\cert\driver.cer C:\cert\driver.spc
  6. pvk2pfx -pvk C:\cert\driver.pvk -pi password -spc C:\cert\driver.spc -pfx C:\cert\driver.pfx -po password
  7. До этого этапа всё должно пройти как на скриншоте ниже, командную строку не закрываем. Создание файла сертификата для подписи драйвера
  8. В папке C:\cert создайте вложенную папку, например, drv и поместите туда свои файлы драйвера. Но: если вам требуется драйвер только для x64, не копируйте .inf файл для x86 систем в эту папку и наоборот. файлы драйвера для подписыванияВ командной строке используем следующие команды:
  9. cd C:\WinDDK\7600.16385.1\bin\selfsign\
  10. inf2cat.exe /driver:"C:\cert\drv" /os:7_X64 /verbose
  11. В предыдущей команде для драйвера 32-бит укажите X86 вместо X64. Если будет предложено скачать .NET Framework, согласитесь, установите, а затем заново выполните команду. В идеале вы должны будете получить сообщение об успешном создании .cat файла для подписи. Однако, возможны ошибки, о наиболее частых — следующие два пункта. После исправления ошибок повторите команду из пункта 10.
  12. DriverVer set to incorrect date — возникает при дате в файле драйвера до 21 апреля 2009 года. Решение: откройте файл .inf из папки drv в текстовом редакторе (можно в блокноте) и в строке DriverVer установите другую дату (формат: месяц/день/год).
  13. Missing AMD64 CatalogFile entry (для 64-бит) или Missing 32-bit CatalogFile entry. Решение: откройте файл .inf из папки drv в текстовом редакторе и в разделе [Version] добавьте строку CatalogFile=catalog.cat
  14. В итоге вы должны получить сообщение: Catalog generation complete с указанием пути к файлу каталога, в моем случае – C:\cert\drv\catalog.cat. Далее используем следующие команды (требуется подключение к Интернету). Файл каталога создан успешно
  15. cd "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin"
  16. signtool sign /f C:\cert\driver.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v C:\cert\drv\catalog.cat
  17. Результат подписи файла драйвера без ошибок на скриншоте ниже. Следующий шаг — добавить самоподписанный сертификат в список доверенных в системе, сделать это можно следующими двумя командами по порядку Подписать драйвер с помощью signtool
  18. certmgr.exe -add C:\cert\driver.cer -s -r localMachine ROOT
    certmgr.exe -add C:\cert\driver.cer -s -r localMachine TRUSTEDPUBLISHER
  19. В результате вы должны получить сообщение «CertMgr Succeeded». Если Failed или certmgr.exe не является внутренней или внешней командой — убедитесь, что командная строка запущена от имени администратора, а вы находитесь в нужной папке (см. 15 шаг).

И вот теперь можно закрыть командную строку и установить драйвер из папки C:\cert\drv с помощью диспетчера устройств, или нажав правой кнопкой по .inf файлу и выбрав пункт «Установить». Потребуется подтвердить установку драйвера в окне «Не удалось проверить издателя этих драйверов» — нажать «Все равно установить этот драйвер».

Установка самостоятельно подписанного драйвера

Обратите внимание, что возможные ошибки в диспетчере устройств, отображаемые для устройства с самостоятельно подписанным драйвером обычно не имеют отношения непосредственно к процессу подписи (та же ошибка для них будет появляться и без подписи, при простом отключении проверки цифровой подписи драйверов в особых вариантах загрузки). Т.е. искать причину в этом случае нужно в чем-то ещё и читать подробную инструкцию по использованию драйвера (например, в случае драйверов для FlashTool).

Комментарии (9) к Как подписать драйвер Windows 10, 8.1 и Windows 7 x64 и x86

  • Владимир

    У меня драйвер lowcdc.inf; lowcdc.sys на 10 шаге выдает две ошибки:
    22.9.10: usbser.sys in driverinstall.ntamd64.copyfiles is missing from Source Disks Files section in \lowcdc.inf; driver may not sign correctly until this is resolved.
    22.9.10: lowcdc.sys in driverinstall.ntamd64.copyfiles is missing from Source Disks Files section in \lowcdc.inf; driver may not sign correctly until this is resolved.
    Помогите исправить ошибку.

    Ответить

    • Dmitry

      Здравствуйте. в lowcdc.inf ищем раздел Source Disks Files
      Туда дописываем строки
      usbser.sys = 1
      lowcdc.sys = 1
      Но может и не сработать. Тут бы еще посмотреть целиком ваш inf.

      Ответить

      • Саша Елькин

        Такая же проблема. Раздела Source Disks Files в файле inf нет.

        Ответить

        • Dmitry

          Дописать вручную.
          Вот документация:
          docs.microsoft.com/en-us/windows-hardware/drivers/install/inf-sourcedisksfiles-section

          Плюсом примеры можете в других inf файлах от других драйверов посмотреть, как именно оно там прописывается.

          Ответить

  • Алексей

    Этот метод не работает для драйверов boot режима. Все равно придется включать опцию отключения обязательной проверки цифровой подписи драйверов BCD.

    Ответить

  • Руслан

    Здравствуйте. На 17 пункте Signtool error : file not fond : c:\cent\driver.pfs
    его действительно нет, но есть driver.pfx

    Ответить

    • Dmitry

      Здравствуйте. Используйте pfx, опечатка в статье (на скриншоте правильная команда). Сейчас исправлю, спасибо.

      Ответить

  • Руслан

    Спасибо, всё удачно получилось.

    Ответить

  • Тимур

    Здравствуйте. Подписал драйвер на Windows 7 Ultimate x64 используя данную инструкцию, всё прошло успешно, подпись стоит. Пытаюсь установить на Windows 10 1809, не видит, поначалу, вроде, видел, потом перестал, но это не точно, может изначально не видел. На других компьютерах с Windows 7 и Windows 8 подпись видна при установке драйвера, а на 10ке нет. Сертификаты все стоят. Что может быть, почему подпись при установке драйвера не показывается?

    Ответить

Оставить комментарий

Примечание: после отправки комментария он не появляется на странице сразу. Всё в порядке — ваше сообщение получено. Ответы на комментарии и их публикация выполняются ежедневно днём, иногда чаще. Возвращайтесь.

Новое

Список инструкций Windows 10 Подписаться