Windows 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, при цьому в інструкції не потрібно вдаватися в деякі додаткові нюанси.

Процес самостійного підпису драйвера

У процесі для того, щоб підписати його самостійно, нам буде потрібно: створити сертифікат, підписати драйвер цим сертифікатом, встановити сертифікат в систему і встановити драйвер. Почнемо.

  • Створіть в корені диска C яку-небудь папку (так до неї простіше буде звертатися в подальшому), наприклад, C:cert, де ми будемо працювати з сертифікатами і драйверами.
  • Запустіть командний рядок від імені адміністратора (потрібні для 18-го кроку). Далі використовуємо наступні команди по порядку. Файли драйвера поки не будуть потрібні. Під час виконання другої команди вас попросять ввести пароль, я використовую password у вікні запиту і далі в командах, ви можете використовувати свій.
  • cd “C:Program FilesMicrosoft SDKsWindowsv7.1bin”
  • makecert -r -sv C:certdriver.pvk -n CN=”remontka” C:certdriver.cer
  • cert2spc C:certdriver.cer C:certdriver.spc
  • pvk2pfx -pvk C:certdriver.pvk -pi password -spc C:certdriver.spc -pfx C:certdriver.pfx -po password
  • До цього етапу все повинно пройти як на скріншоті нижче, командний рядок не закриваємо.
  • В папці C:cert створіть нову вкладену папку, наприклад, drv і помістіть туди свої файли драйвера. Але: якщо вам потрібен драйвер тільки для x64, не копіюйте .inf-файл для x86 систем в цю папку і навпаки. У командному рядку використовуємо наступні команди:
  • cd C:WinDDK7600.16385.1binselfsign
  • inf2cat.exe /driver:”C:certdrv” /os:7_X64 /verbose
  • У попередній команді драйвера для 32-біт вкажіть X86 замість X64. Якщо буде запропоновано завантажити .NET Framework, погодьтеся, встановіть, а потім заново виконайте команду. В ідеалі ви повинні будете отримати повідомлення про успішне створення .cat файлу для підпису. Однак, можливі і помилки, про найбільш частих — наступні два пункти. Після виправлення помилок повторіть команду з пункту 10.
  • DriverVer set to incorrect date — виникає при дату у файлі драйвера до 21 квітня 2009 року. Рішення: відкрийте файл .inf з папки drv в текстовому редакторі (можна в блокноті) і в рядку DriverVer встановіть іншу дату (формат: місяць/день/рік).
  • Missing AMD64 CatalogFile entry (для 64-біт) або Missing 32-bit CatalogFile entry. Рішення: відкрийте файл .inf з папки drv в текстовому редакторі і в розділі [Version] додайте рядок CatalogFile=catalog.cat
  • У підсумку ви повинні отримати повідомлення: Catalog generation complete з зазначенням шляху до файлу каталогу, в моєму випадку – C:certdrvcatalog.cat. Далі використовуємо наступні команди (потрібне підключення до Інтернету).
  • cd “C:Program FilesMicrosoft SDKsWindowsv7.1bin”
  • signtool sign /f C:certdriver.pfs /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v C:certdrvcatalog.cat
  • Результат підпису файлу драйвера без помилок на скріншоті нижче. Наступний крок — додати самопідписаний сертифікат в список довірених в системі, зробити це можна наступними двома командами по порядку
  • certmgr.exe -add C:certdriver.cer -s -r localMachine ROOT
    certmgr.exe -add C:certdriver.cer -s -r localMachine TRUSTEDPUBLISHER
  • В результаті ви повинні отримати повідомлення «CertMgr Succeeded». Якщо Failed або certmgr.exe не є внутрішньою або зовнішньою командою — переконайтеся, що командний рядок запущена від імені адміністратора, а ви знаходитесь в потрібній папці (див. 15 крок).

І ось тепер можна закрити вікно командного рядка і встановити драйвер з папки C:certdrv за допомогою диспетчера пристроїв, або натиснувши правою кнопкою миші .inf-файлу і виберіть пункт «Встановити». Потрібно підтвердити установку драйвера у вікні «Не вдалося перевірити видавця цих драйверів» — натиснути «Все одно встановити цей драйвер».

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

НАПИСАТИ ВІДПОВІДЬ

Please enter your comment!
Please enter your name here