У операційні системи сімейства 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 в ізольованих середовищах
Управління кореневими сертифікатами комп'ютера в Windows 10
Як подивитися список кореневих СЕРТФІКАТА комп'ютера з Windows?
- Щоб відкрити сховище кореневих СЕРТФІКАТА комп'ютера в Windows 10 / 8.1 / 7 / Windows Server, запустіть консоль mmc.exe;
- натисніть файл (File) -> Додати або видалити оснастку (Add / Remove Snap-in), в списку оснасток виберіть сертифікати (Certificates) -> Додати (Add);
- У діалоговому вікні виберіть що ви хочете керувати сертифікатами обліковим записом комп'ютера (Computer account);
- Далі -> Ok -> Ok;
- розгорніть 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.Ви можете вручну перенести файл кореневого сертифіката з одного комп'ютера на інший через функцію Експорту / Імпорту.
- Ви можете експортувати будь-який сертифікат .CER в файл, клацнувши по ньому і вибравши "Всі завдання" -> "Експорт";
- Потім за допомогою команди імпорт можна імпортувати цей сертифікат на іншому комп'ютері.
утиліта rootsupd.exe
У Windows XP для поновлення кореневих сертифікатів використовувалася утиліта rootsupd.exe. У цій утиліта міститься список кореневих і відкликаних сертифікатів, зошитах в якій регулярно оновлювався. Сама утиліта поширювалася у вигляді оновлення окремих програмного забезпечення KBдев'ятсот тридцять одна тисяча сто двадцять п'ять (Update for Root Certificates).
- скачайте утиліту rootsupd.exe, перейшовши за посиланням (станом на 15.07.2019 посилання не працює, можливо в Microsoft вирішили прибрати її з загального доступу. На даний момент ви можете завантажити утиліту з сайту kaspersky.com - http://media.kaspersky.com/utilities/CorporateUtilities /rootsupd.zip);
- Для установки кореневих сертифікатів Windows, досить запустити файл rootsupd.exe. Але ми спробуємо більш уважно розглянути його вміст, розпакувати його за допомогою команди:
rootsupd.exe / c / t: C: \ PS \ rootsupd
- Сертифікати містяться в 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, ізольованою від Інтернету.