Оновлення кореневих сертифікатів в Windows 10 / Windows Server 2016

У операційні системи сімейства Windows вбудована система автоматичного оновлення кореневих сертифікатів з сайту Microsoft. Компанія MSFT в рамках програми кореневих сертифікатів Microsoft Trusted Root Certificate Program, веде і публікує в своєму онлайн сховище список сертифікатів для клієнтів і пристроїв Windows. Якщо сертифікат, що перевіряється в своїй ланцюжку сертифікації відноситься до кореневого CA, який бере участь в цій програмі, система автоматично завантажить з вузла Windows Update і додасть такої кореневий сертифікат в довірені.

ОС Windows запитує оновлення кореневих сертифікатів (certificate trust lists - CTL) один раз на тиждень. Якщо в Windows відсутній прямий доступ до каталогу Windows Update, то система не зможе оновити кореневі сертифікати, відповідно у користувача можуть бути проблеми з відкриттям сайтів (SSL сертифікати яких підписані CA, до якого немає довіри, див. Статтю про помилку в Chrome "Цей сайт не може забезпечити безпечне з'єднання "), або з установкою запуском підписаних додатків або скриптів.

У цій статті спробуємо розібратися, як можна вручну оновити список кореневих сертифікатів в TrustedRootCA в ізольованих мережах, або комп'ютерах / серверах без прямого підключення до Інтернету.

зміст:

  • Управління кореневими сертифікатами комп'ютера в Windows 10
  • утиліта rootsupd.exe
  • Certutil: отримання кореневих сертифікатів через Windows Update
  • Список кореневих сертифікатів в форматі STL
  • Оновлення кореневих сертифікатів в Windows за допомогою GPO в ізольованих середовищах

Примітка. Якщо ваші комп'ютери виходять в Інтернет через проксі-сервер, для того, щоб працювало автоматичне оновлення кореневих сертифікатів на комп'ютера користувачів, Microsoft рекомендує відкрити прямий доступ (bypass) до веб-сайтів Microsoft. Але це не завжди можливо / застосовно.

Управління кореневими сертифікатами комп'ютера в Windows 10

Як подивитися список кореневих СЕРТФІКАТА комп'ютера з Windows?

  1. Щоб відкрити сховище кореневих СЕРТФІКАТА комп'ютера в Windows 10 / 8.1 / 7 / Windows Server, запустіть консоль mmc.exe;
  2. натисніть файл (File) -> Додати або видалити оснастку (Add / Remove Snap-in), в списку оснасток виберіть сертифікати (Certificates) -> Додати (Add);
  3. У діалоговому вікні виберіть що ви хочете керувати сертифікатами обліковим записом комп'ютера (Computer account);
  4. Далі -> Ok -> Ok;
  5. розгорніть Certificates (Сертифікати) -> Trusted Root Certification Authorities Store (Довірені кореневі сертифікати). У цьому списку міститься список кореневих довірених сертифікатів вашого комп'ютера.

Ви також можете отримати список довірених кореневих сертифікатів з термінами дії за допомогою PowerShell:

Get-Childitem cert: \ LocalMachine \ root | format-list

Можна вивести список минулих сертифікатів, або які закінчаться в найближчі 30 днів:

Get-ChildItem cert: \ LocalMachine \ root | Where $ _. NotAfter -lt (Get-Date) .AddDays (30)

В консолі mmc ви можете переглянути інформацію про будь-якому сертифікаті або видалити його з довірених.

З метою безпеки рекомендує періодично перевіряти сховище довірених сертифікатів на наявність підроблених сертифікатів за допомогою утиліти Sigcheck.

Ви можете вручну перенести файл кореневого сертифіката з одного комп'ютера на інший через функцію Експорту / Імпорту.

  1. Ви можете експортувати будь-який сертифікат .CER в файл, клацнувши по ньому і вибравши "Всі завдання" -> "Експорт";
  2. Потім за допомогою команди імпорт можна імпортувати цей сертифікат на іншому комп'ютері.

утиліта rootsupd.exe

У Windows XP для поновлення кореневих сертифікатів використовувалася утиліта rootsupd.exe. У цій утиліта міститься список кореневих і відкликаних сертифікатів, зошитах в якій регулярно оновлювався. Сама утиліта поширювалася у вигляді оновлення окремих програмного забезпечення KBдев'ятсот тридцять одна тисяча сто двадцять п'ять (Update for Root Certificates).

  1. скачайте утиліту rootsupd.exe, перейшовши за посиланням (станом на 15.07.2019 посилання не працює, можливо в Microsoft вирішили прибрати її з загального доступу. На даний момент ви можете завантажити утиліту з сайту kaspersky.com - http://media.kaspersky.com/utilities/CorporateUtilities /rootsupd.zip);
  2. Для установки кореневих сертифікатів Windows, досить запустити файл rootsupd.exe. Але ми спробуємо більш уважно розглянути його вміст, розпакувати його за допомогою команди: rootsupd.exe / c / t: C: \ PS \ rootsupd
  3. Сертифікати містяться в SST файлах: authroots.sst, delroot.sst і т.п. Для видалення / установки сертифікатів можна скористатися командами:
    updroots.exe authroots.sst
    updroots.exe -d delroots.sst

але, як ви бачите, дата створення цих файлів 4 квітня 2013 (майже за рік до закінчення офіційної підтримки Windows XP). Таким чином, з цього часу утиліта не оновлювалася і не може бути використана для установки актуальних сертифікатів. Однак нам трохи пізніше знадобиться файл updroots.exe.

Certutil: отримання кореневих сертифікатів через Windows Update

Утиліта управління і роботи з сертифікатами Certutil (З'явилася в Windows 10), дозволяє завантажити з вузлів Windows Update і зберегти в SST файл актуальний список кореневих сертифікатів.

Для генерації SST файлу, на комп'ютері Windows 10 з доступом в Інтернет, виконайте з правами адміністратора команду:

certutil.exe -generateSSTFromWU roots.sst

В результаті в цільовому каталозі з'явиться файл SST, що містить актуальний список сертифікатів. Двічі клацніть по ньому для відкриття. Даний файл є контейнер, що містить довірені кореневі сертифікати.

У відкрилася mmc оснащенні управління сертифікатами ви можете експортувати будь-який з отриманих сертифікатів. У моєму випадку, список сертифікатів містив 358 елемента. Природно, експортувати сертифікати і встановлювати по одному не раціонально.

Порада. Для генерації індивідуальних файлів сертифікатів можна використовувати команду certutil -syncWithWU. Отримані таким чином сертифікати можна поширити на клієнтів за допомогою GPO.

Для установки всіх сертифікатів з SST файлу і додавання їх в список кореневих СЕРТФІКАТА комп'ютера можна скористатися командами PowerShell:

$ SstStore = (Get-ChildItem -Path C: \ ps \ rootsupd \ roots.sst)
$ SstStore | Import-Certificate -CertStoreLocation Cert: \ LocalMachine \ Root

Також можна скористатися утилітою updroots.exe (Вона міститься в архіві rootsupd.exe, який ми розпакували в попередньому розділі):

updroots.exe roots.sst

Запустіть оснащення certmgr.msc і переконайтеся, що всі сертифікати були додані в сховище Trusted Root Certification Authority.

Список кореневих сертифікатів в форматі STL

Є ще один спосіб отримання списку сертифікатів з сайту Microsoft. Для цього потрібно завантажити файл http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab (оновлюється двічі на місяць) .За допомогою будь-якого архіватора (або провідника Windows) розпакуйте вміст архіву authrootstl.cab. Він містить один файл authroot.stl.

Файл authroot.stl являє собою контейнер зі списком довірених сертифікатів в форматі Certification Trust List.

Даний файл можна встановити в системі за допомогою контекстного меню файлу STL (Install CTL).

Або за допомогою утиліти certutil:

certutil -addstore -f root authroot.stl

root "Довірені кореневі центри сертифікації" CTL "0" доданий в сховище. CertUtil: -addstore - команда успішно виконана.

Також ви можете імпортувати сертифікати з консолі управління сертифікатами (Trust Root Certification Authorities ->Certificates -> All Tasks > Import).

Вкажіть шлях до вашого STL файлу сертифікатами.

Після виконання команди, в консолі управління сертифікатами (certmgr.msc) в контейнері Trusted Root Certification Authorities (Довірені кореневі сертифікати) з'явиться новий розділ з ім'ям Certificate Trust List (Список довіри сертифікатів).

Аналогічним чином можна скачати і встановити список з відкликаними сертифікатами, які були виключені з програми Root Certificate Program. для цього, скачайте файл disallowedcertstl.cab (Http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab), розпакуйте його і додайте в розділ Untrusted Certificates командою:

certutil -addstore -f disallowed disallowedcert.stl

Оновлення кореневих сертифікатів в Windows за допомогою GPO в ізольованих середовищах

Якщо у вас виникла задача регулярного поновлення кореневих сертифікатів в ізольованому від Інтернету домені Active Directory, є дещо складніша схема поновлення локальних сховищ сертифікатів на комп'ютерах домену за допомогою групових політик. В ізольованих мережах Windows ви можете налаштувати оновлення кореневих сертифікатів на комп'ютерах користувачів декількома способами.

перший спосіб передбачає, що ви регулярно вручну завантажуєте і копіюєте в вашу ізольовану мережу файл з кореневими сертифікатами, отриманий так:

certutil.exe -generateSSTFromWU roots.sst

Потім сертифікати з даного файлу можна встановити через SCCM або PowerShell логон скрипт в GPO:

$ SstStore = (Get-ChildItem -Path \\ dc01 \ SYSVOL \ winitpro.ru \ rootcert \ roots.sst)
$ SstStore | Import-Certificate -CertStoreLocation Cert: \ LocalMachine \ Root

другий спосіб передбачає отримання актуальних кореневих сертифікатів за допомогою команди:

Certutil -syncWithWU -f \\ dc01 \ SYSVOL \ winitpro.ru \ rootcert \

У зазначеному мережевому каталозі з'явиться ряд файлів кореневих сертифікатів (CRT) і в тому числі файли (authrootstl.cab, disallowedcertstl.cab, disallowedcert.sst, thumbprint.crt).

Потім за допомогою GPP потрібно змінити значення параметра реєстру RootDirURL  в гілці HKLM \ Software \ Microsoft \ SystemCertificates \ AuthRoot \ AutoUpdate. Цей параметр повинен вказувати на мережеву папку, з якої клієнтам потрібно отримувати нові кореневі сертифікати. Перейдіть в секцію редактора GPO Computer Configuration -> Preferences -> Windows Settings -> Registry. І створіть новий параметр реєстру зі значеннями:

Action: Update
Hive: HKLM
Key path: Software \ Microsoft \ SystemCertificates \ AuthRoot \ AutoUpdate
Value name: RootDirURL
Type: REG_SZ
Value data: File: // \\ dc01 \ SYSVOL \ winitpro.ru \ rootcert \

Залишилося призначити цю політику на комп'ютери і після поновлення політик перевірити появу нових кореневих сертифікатів в сховище.

політика Turn off Automatic Root Certificates Update в розділі Computer Configuration -> Administrative Templates -> System -> Internet Communication Management -> Internet Communication settings повинна бути виключена чи відсутня установка.

У цій статті ми розглянули кілька способів поновлення кореневих сертифікатів на ОС Windows, ізольованою від Інтернету.