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

Комментарии (88) к Как подписать драйвер 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-файл?

    Ответить

  • Иван

    Здравствуйте.
    Необходимо было подписать драйвер для устройства. Все сделал как в статье, все команды отработали правильно, при установке устройства все равно висит код 52. При этом владелец цифровой подписи во вкладке драйвер появился, при перезагрузке компьютера с отключением проверки цифровой подписи устройство начинает работать. ОС Windows 10 Pro c последними обновлениями. WDK и Windows SDK ставил как те, что по вашим ссылкам, так последние 10.0.18362.0, пробовал создавать файл .cat под разные os — 7_x86, 7_x64, 10_x86, 10_x64, XP_86, XP_64.

    Что может быть не так?

    Ответить

  • alex

    Скажите пожалуйста у меня winXP x86 и Win10 x64 1909 могу я на win XP установить инструменты и подписать драйвер для Win10x64 и на Win10x64 кроме драйвера нужно ещё сертификат ставить или ещё что?
    Я начал делать и на первой строке пишет «не найден путь»

    Ответить

    • Dmitry

      Вот тут не знаю. Он отработать-то должен в XP, но допускаю, что не та разрядность может вызвать проблемы.

      Ответить

  • Alex

    Установил на WinXP инструменты, выполнил все пункты, catalog.cat. создан, Экран командной строки на финише такой же. Взял драйвер пытался поставить на Win 10 1909 и всё равно ругается на не подписанный драйвер и выдаёт ошибку при ручной установке в диспетчере устройств, Что не так?
    Всё таки можно найти способ постоянной! отключки проверки подписи именно для Win 10 1909?

    Ответить

  • Alex

    В Win 10 1909 При открытии catalog.cat из драйвера подписанного в WinXP, пишет сертификат этого каталога недействителен. Предположу что сертификат — файл с расширением *.cer, находиться на WinXP где подписывался драйвер. Видимо есть список Корневых сертификатов где есть мой кросс-сертификат. Он и должен быть установлен на Win 10 1909, в Доверенные корневые центры сертификации на устройстве, на котором устанавливается драйвер подписанный ЦП. Если так как это сделать, то есть перенести сертификат на Win 10 1909?

    Ответить

  • Alex

    Пытался установить др-р, перенёс на Win 10
    экспортировал сертификат в доверенные корневые центры сертификации в текущего пользователя и локальный комп

    при открытии каталога.cat Пишет: «Этот сертификат действителен..»

    Подписавший: Symantec Time Stamping Services Signer — G4

    Издатель: Symantec Time Stamping Services CA — G2

    сертификат действителен до 30 ‎декабря ‎2020 ‎г.

    При установке драйвера, на подпись уже не ругался, но в конце установки:

    «Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)»

    В чём проблема и что делать?

    Ответить

    • Dmitry

      Здравствуйте.
      Такое может быть с подписанными подобными методами сертификатами драйверов на Windows 10 новее версии 1607 при включенном Secure Boot в UEFI (в этом случае сейчас все драйверы должны быть Microsoft подписаны).

      Ответить

  • Александр

    А где эту папку взять C:\WinDDK\7600.16385.1\bin\selfsign\ ?

    Ответить

    • Dmitry

      Будут после установки компонентов из первой части инструкции.

      Ответить

  • KJIATO

    snp2cp98.inf does not have NTAMD64 decorated model sections.
    22.9.6: DriverVer missing or in incorrect format in snp2cp98.inf
    snp2mic98.inf does not have NTAMD64 decorated model sections.
    пишет такую ошибку

    Ответить

    • Dmitry

      Искать раздел DriverVer в указанном файле и править в текстовом редакторе так, чтобы он был правильным (можно подсмотреть в файлах других драйверов, как именно он там прописывается).

      Ответить

  • _AsH_

    Здравствуйте! А нет какой нибудь программы чтобы сама подписывала драйвера ?

    Ответить

  • BohLER

    Помогло, спасибо. У меня сканер ColorPage-HR6X Slim дрова хп и виста только нашел, без подписи. Единственное Microsoft Windows SDK и Windows Driver Kit 7.1.0 пришлось новые качать, эти не установились, у меня вин 10 про 64 (docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk). Потом inf2cat.exe лежал в папке C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86 . т.е. в х64 его не было. Из-за кучу времени потерял переустанавливая разные версии, пока поиск по компу не поставил)

    Ответить

  • Lex

    камера A4tech PK5 старая, дрова работали только в тест режиме винды без подписи дров. Выше описанный метод не исправил ошибку «Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)».
    Камера то хорошая, рабочая…. но мелкомягкие заставляют меня раскошелиться на новую вебку, что печально. отключение Secure Boot в биосе тоже не помогло….

    Ответить

  • FEDOR

    проблема такая, есть файл igdumdim32.dll, и в свойствах у него написано что он не проше проверку подписи, из за этого не запускаются некоторые приложения. Помогие

    Ответить

    • Dmitry

      Здравствуйте.
      Предполагаю, что у вас какая-то игра сообщила о том, что нет этого файла, вы его где-то скачали с «левого» сайта, а по факту там оказался не тот файл, просто название такое.
      Вообще — это файл часть драйвера Intel HD Graphics, а потому решение — удалить тот, что вы скачали (если я прав) и вручную установить официальные драйверы на видеокарту Intel.

      Ответить

  • Kirill

    Здравствуйте. На п.10 ошибок нет, но есть вот такие предупреждения. С этим надо бороться или можно оставить так и продолжать?
    Warnings:
    22.9.10: cfadisk.sys in [cfadisk_copyfiles] is missing from [SourceDisksFiles] section in \cfadisk.inf; ok if file source is provided via LayoutFile in [Version].
    22.9.10: disk.sys in [gendisk_copyfiles] is missing from [SourceDisksFiles] section in \cfadisk.inf; ok if file source is provided via LayoutFile in [Version].

    Ответить

    • Dmitry

      Здравствуйте.
      Проверьте, есть ли указание на файлы cfadisk.sys и disk.sys в разделе Version в файле cfadisk.inf. Если есть там, то всё ок.

      Ответить

      • Kirill

        Вот весь раздел.
        [Version]
        Signature=»$Windows NT$»
        Class=DiskDrive
        ClassGuid={4D36E967-E325-11CE-BFC1-08002BE10318}
        Provider=%HGST%
        LayoutFile=layout.inf
        DriverVer=08/11/2017,9.9.9.9
        CatalogFile=catalog.cat

        Ответить

        • Dmitry

          Тогда нет, не прокатит.
          Решение — добавить эти файлы, но не в Version, а в раздел SourceDisksFiles
          Синтаксис по идее такой будет:
          [SourceDisksFiles]
          cfadisk.sys = НОМЕР_ДИСКА_ИЗ_РАЗДЕЛА_SOURCE_DISK_NAMES
          disk.sys = НОМЕР_ДИСКА_ИЗ_РАЗДЕЛА_SOURCE_DISK_NAMES

          Ответить

  • Евгений

    Драйвер подписал… Даже скрипт написал (*.bat)… Но в свойствах устройства пишет «Не удается проверить цифровую подпись драйверов, необходимых для данного устройства. При последнем изменении оборудования или программного обеспечения могла быть произведена установка неправильно подписанного или поврежденного файла либо вредоносной программы неизвестного происхождения. (Код 52)»
    Windows 10 Pro. Выпуск 2004. Сборка 19041.572
    1. Что делать?
    2. Можно ли подпись из одного драйвера перенести в другой?

    Ответить

    • Dmitry

      Здравствуйте.
      Рецепта у меня нет. Может оказаться, что особенность драйвера (как в последнем абзаце статьи).

      Ответить

  • vadim

    здравствуйте.
    тормознулся на п.14. выдает ошибку: 22.9.12: INF file (\имяФайла.inf) cannot be copied to %windir%\inf»

    что делать.

    Ответить

    • Dmitry

      Здравствуйте. а командная строка от администратора работает?

      Ответить

  • vadim

    да, работает. все выполнял в ком.строке под администратором.

    Ответить

  • Денис

    Добрый день, как быть, если у меня в SDK нет функции makecert? win10, драйвер для ASUS XONAR AE звуковой карты

    Ответить

    • Dmitry

      А если SDK 7.1 версии поставить?

      Ответить

  • Андрей

    Добрый день! На 10 шаге пишет: «Unable to create the indirect data (C:\Users\AND\AppData\Local\Temp\WST\e0362b48-a628-4032-a0ec-c8440f8129ca\002).
    Signability test failed.» У меня Win10 1903, поставил WinDDK 7600.16385.1, ком.строка под админом.
    Как с этим бороться ?

    Ответить

    • Dmitry

      с такой ошибкой не сталкивался. вообще текст её в переводе: «тест возможности подписывания провален»..

      Ответить

    • Фёдор

      Пробую подписать кастомный драйвер для старой встройки intel, и у меня очень похожая ошибка, только путь немного другой. По точному поиску только ваш комментарий гугл и выдаёт..

      Ответить

  • Наталья

    Добрый день.
    Срезалась на шаге 6. После ввода команды выдало ошибку:
    ERROR: password incorrect or PVK file corrupted.
    (Error code = 0x80090005)

    Копировала в точности ваши команды. Вижу в папке 3 свежесозданных файла, в том числе driver.pvk

    Ответить

  • Никита

    На 16 шаге выдало ошибку

    signtool sign /f C:\cert\driver.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v C:\cert\drv\tusbaudio.cat

    The following certificate was selected:
    Issued to: remontka
    Issued by: remontka
    Expires: Sun Jan 01 04:59:59 2040
    SHA1 hash: 35D971348C509E2F835394816F125428A3A4B85B

    Done Adding Additional Store
    SignTool Error: An unexpected internal error has occurred.
    Error information: «SignerTimeStamp() failed.» (-2147012865/0x80072eff)

    Проигнорировал ее, закончил инструкцию и драйвера почему-то все равно установились, спасибо.

    Ответить

    • Dmitry

      Здравствуйте.
      Ошибка похоже говорит о том, что не удалось получить временную метку, возможно интернет был отключен или по какой-то другой причине не было доступа к сайту, указанному в команде.

      Ответить

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

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