Как подписать драйвер 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).

Комментарии (27) к Как подписать драйвер 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 1909 все выше программы не устанавливаются!

    Ответить

    • Dmitry

      А что происходит при установке?

      Ответить

  • Михаил

    Microsoft Windows SDK for Windows 7 вот эта не ставится!

    Ответить

    • Dmitry

      А что именно сообщает при установке? Должна ставиться без проблем (проверил — Win 10 1909 Pro x64)

      Ответить

    • Александр

      Мне помогло удаление всех Microsoft Visual C++ 2010 Redistributable

      Ответить

  • Rico Bek

    При установке Windows Driver Kit 7.1.0 показывает окошку и сразу исчезает, дает ошибку:
    KitSetup Runtime Initialization Error! (Code: 0x0018)
    Unable to determine the current Windows OS SKU.
    и.т.д.

    Ответить

  • Компьютерщик

    Доброго времени суток. Не знаю в тему ли, но все же. Драйвера 64 битные под 7 ку и 8 ку есть, но нет под десятку,
    7 ка не ставится на ноут, к слову асус x509fa,. Есть ли возможность преобразовать, адаптировать, подписать или как то еще под вин10?
    Благодарю….!

    Ответить

    • Dmitry

      Здравствуйте.
      Драйверы под 8-ку почти всегда отлично ставятся на 10-ку и никаких дополнительных действий производить не нужно.
      Если вдруг там установщик включает в себя проверку версии операционной системы (т.е. он проверяет типа: не 8-ка, не буду ставиться, напишу, что не поддерживаю), то можно установщик драйвера распаковать чем-то вроде Universal Extractor и потом поставится (там внутри окажутся еще файлы установки или просто файлы драйвера для установки через диспетчер устройств).

      Ответить

      • Компьютерщик

        Спасибо за совет. Будем экспериментировать. Так_то 10 ка увидела в устройствах и название устройства распознала, но драйвера отказалась устанавливать.

        Ответить

      • Компьютерщик

        Здравствуйте. Продолжаю изыскания, хочется обойти тот сложный метод, который ранее Вам показывал, …
        Указанный Вам метод в этой статье, предполагает переделку драйверов 7ки 64бит под 10 ку?

        Ответить

        • Dmitry

          Там в методе есть правка файлов DLL с драйверами видео Intel в HEX-едиторе, потом подписывание. Но что именно они там правят — не знаю).
          Или вы именно про метод описанный сверху? Если так, нет, не предполагает, но исходит из того, что в 90% случаев драйверы от 7 (и даже часто от Vista) работают в 10-ке.

          Ответить

  • Компьютерщик

    Ранее писал, что ..
    Драйвера 64 битные под 7 ку и 8 ку есть, но нет под десятку, этот вариант не прошел,

    8ку поставил, но медустройство, подключенное к нему, не заработало. Пытаюсь поставить 7ку, потому что драйвера только под нее , прецеденты есть.
    Поискал и вот,что нашел. Видео youtube.com/watch?v=1Yyr1zuFiYk
    Автор не выставил свой гайд, ссылаясь на отсутствие времени. А вот один из пользователей сделал. Ссылка на его инструкцию.
    reboot.pro/topic/21991-windows-7-install-issues/page-3#entry211091
    А также.
    forum.notebookreview.com/threads/guide-how-to-install-windows-7-x64-on-acer-spin-5-laptop.829379/

    Тут он расписал:
    pastebin.com/d4hN4ih0
    Квинтэссенция вышеизложенного-
    drive.google.com/file/d/1MbQJh9-aUA7OScMjtwuGruaJk80DsTWT/view

    Думаю сами понимаете, изложенный материал не для обывателя.
    Ваше мнение.

    Забыл , видео
    youtube.com/watch?v=-0xqUoHUVAo

    Ответить

    • Компьютерщик

      Вся соль вот тут.
      Но где это осуществить и чем?
      If your MB supports CSM, install Windows 7 with CSM enabled but select «UEFI» as boot device and install Windows 7 normally. After all the updates and drivers are installed. you can remove the standard VGA drivers and boot without CSM. That’s the script i used to remove it automatically:

      rem disable vga.sys 640×480 16 colors
      rem ren %SystemRoot%\system32\drivers\vga.sys *.off
      set Services=HKLM\SYSTEM\CurrentControlSet\Services
      reg.exe add «%Services%\Vga» /f /t REG_DWORD /v «Start» /d 4
      reg.exe add «%Services%\VgaSave» /f /t REG_DWORD /v «Start» /d 4

      rem disable VGA at bootmgr
      bcdedit.exe /set {current} bootlog yes
      bcdedit.exe /set {current} bootstatuspolicy IgnoreAllFailures
      bcdedit.exe /set {current} novesa on
      bcdedit.exe /set {current} quietboot on

      Пытались батником, но парировали —
      you have to run all these commands separately

      Ответить

      • Dmitry

        а на каких командах парировали? bcdedit или раньше? По идее всё должно бы выполниться успешно, но… в крайнем случае, можно ведь и separately набить по одной в cmd без задания переменных и комментариев)

        Ответить

        • Компьютерщик

          Cmd -ом. Это выдержка из ютюба.

          Ответить

    • Dmitry

      Мнения как такового нет: выглядит логично (кратко глянул видео, внимательнее — pastebin), но вообще тут масштабный эксперимент требуется.

      Ответить

  • Виталий

    Где взять pvk-файл?

    Ответить

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

Новое

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