Обновление корневых сертификатов в windows с помощью gpo в изолированных средах

По умолчанию, все операционные системы семейства Windows автоматически получают и обновляют корневые сертификаты с сайта Microsoft. Компания MSFT в рамках программы корневых сертификатов Microsoft Trusted Root Certificate Program, ведет и публикует в своем онлайн хранилище сертификаты для клиентов и устройств Windows. Если проверяемый сертификат в своей цепочке сертификации относится к корневому CA, который участвует в этой программе, Windows автоматически скачает с узла Microsoft Update и добавит такой корневой сертификат в доверенные на вашем компьютере.

Windows запрашивает обновление списка корневых сертификатов (certificate trust lists — CTL) один раз в неделю. Если в Windows отсутствует прямой доступ к каталогу Windows Update, то система не сможет обновить корневые сертификаты, соответственно у пользователя могут быть проблемы с открытием сайтов (SSL сертификаты которых подписаны недоверенными CA, см. статью об ошибке в Chrome Этот сайт не может обеспечить безопасное соединение), либо с установкой запуском подписанных приложений или скриптов.

В этой статье попробуем разобраться, как в Windows вручную обновить список корневых сертификатов в TrustedRootCA в изолированных сетях, или компьютерах/серверах без прямого подключения к Интернету.

Содержание:

  • Управление корневыми сертификатами в Windows 10 и 11
  • Включить/отключить автоматическое обновление корневых сертификатов в Windows
  • Ручное обновление корневых сертификатов в Windows 10 и 11
  • Список корневых сертификатов в формате STL
  • Обновление корневых сертификатов в Windows с помощью GPO в изолированных средах
  • Обновление корневых сертификатов в Windows 7
  • Утилита rootsupd.exe для обновления сертификатов в Windows XP

Примечание. Если ваши компьютеры выходят в Интернет через прокси-сервер, для автоматического обновления корневых сертификатов Microsoft рекомендует открыть прямой доступ (bypass) к веб-узлам Microsoft. Но это не всегда возможно/применимо.

Управление корневыми сертификатами в Windows 10 и 11

Как посмотреть список корневых сертификатов на устройстве Windows?

  1. Чтобы открыть хранилище корневых сертификатов компьютера в Windows /Windows Server, запустите консоль
    mmc.exe
    ;
  2. Нажмите Файл (File) -> Добавить или удалить оснастку (Add/Remove Snap-in), в списке оснасток выберите Сертификаты (Certificates) -> Добавить (Add);
  3. В диалоговом окне выберите что вы хотите управлять сертификатами учетной записи компьютера (Computer account);
    mmc оснастка диспетчера сертфикатов в windows

  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)} |select NotAfter, Subject

powershell вывести список просроченных корневых сертификатов

В целях безопасности рекомендует периодически проверять хранилище доверенных сертификатов на наличие поддельных сертификатов с помощью утилиты Sigcheck. Утилита позволяет сравнить список сертификатов, установленных на компьютере со списком корневых сертификатов на сайте Microsoft (можно скачать офлайн файл с актуальными сертификатами authrootstl.cab).

Вы можете вручную перенести файл корневого сертификата с одного компьютера на другой с помощью функцию Экспорта/Импорта.

  1. Вы можете экспортировать любой сертификат .CER в файл, щелкнув по нему и выбрав “Все задачи” -> “Экспорт”;
    экспорт корневого сертфиката в windows

  2. Затем с помощью команды Импорт можно импортировать этот сертификат на другом компьютере.
    импорт сертфиката в windows

Включить/отключить автоматическое обновление корневых сертификатов в Windows

Как мы уже упомянули, Windows по умолчанию сама обновляет корневые сертификаты. Вы можете включить или отключить обновление сертификатов в Windows через GPO или реестр.

Откройте локальный редактор групповой политики (gpedit.msc) и перейдите в раздел Computer Configuration -> Administrative Templates -> System -> Internet Communication Management -> Internet Communication.

Параметр Turn off Automatic Root Certificates Update в этом разделе позволяет отключить автоматическое обновление корневых сертификатов через сайт Windows Update. По умолчанию это политика не настроена и Windows всегда пытается автоматически обновлять корневые сертификаты.

включить или отключить автоматическое обновление корневых сертфикатов в Windows с помощью GPO

Если эта политика не настроена, а сертификаты не обновляются автоматически, проверьте не включен ли вручную параметр реестра, отвечающий за эту настройку. Проверьте значение параметра реестра с помощью PowerShell:

Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\SystemCertificates\AuthRoot' -Name DisableRootAutoUpdate

параметр реестра DisableRootAutoUpdate - отключение обновление доверенных корневых сертификатов

Если команда вернет, что значение ключа
DisableRootAutoUpdate=1
, значит на вашем компьютере отключено обновление корневых сертификатов. Чтобы включить его, измените значение параметра на 0.

Ручное обновление корневых сертификатов в Windows 10 и 11

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

Для генерации SST файла, на компьютере Windows 10/11 с доступом в Интернет, выполните с правами администратора команду:

certutil.exe -generateSSTFromWU c:\PS\roots.sst

Updated SST file.
CertUtil: -generateSSTFromWU command completed successfully.

certutil.exe generateSSTFromWU скачать корневые сертификаты с microsoft

В результате в целевом каталоге появится файл SST, содержащий актуальный список сертификатов. Дважды щелкните по нему для открытия. Данный файл представляет собой контейнер, содержащий доверенные корневые сертификаты.

sst файл - контейнер для сертификатов

В указанном каталоге появится файл SST, содержащий актуальный список сертификатов. Данный файл представляет собой контейнер, содержащий доверенные корневые сертификаты. Дважды щелкните по нему.

В открывшейся
mmc
консоли вы можете экспортировать любой из полученных сертификатов. В моем случае, список сертификатов содержал 436 элементов. Естественно, экспортировать сертификаты и устанавливать по одному не рационально.

Для установки всех сертификатов из SST файла и добавления их в список корневых сертификатов компьютера можно воспользоваться командами PowerShell:
$sstStore = ( Get-ChildItem -Path C:\ps\rootsupd\roots.sst )
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root

Запустите оснастку certmgr.msc и убедитесь, что все сертификаты были добавлены в хранилище Trusted Root Certification Authority. В нашем примере на Windows 11 количество корневых сертификатов увеличилось с 34 до 438.

все корневые сертфикаты windows

Чистая копия Windows после установки содержит в корневом хранилище лишь небольшое количество сертификатов. Если компьютер подключен к интернету, остальные корневые сертификаты будут устанавливаться автоматически (по требованию), если ваше устройство попытается получить доступ к HTTPS сайту/SSL сертификату, в чей цепочке доверия есть отпечаток из CTL Microsoft. Поэтому как правило, нет необходимости добавлять в свое локальное хранилище сразу все сертификаты, доверенные Microsoft.

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

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

authroot.stl

Файл authroot.stl представляет собой контейнер со списком отпечатков (thumbprint) доверенных сертификатов Microsoft в формате Certification Trust List.

Certification Trust List authroot.stl

Данный файл можно установить в системе с помощью утилиты certutil:

certutil -enterprise -f -v -AddStore "Root" "C:\PS\authroot.stl"

certutil установить STL файл доверенных сертфикатов в Windows

Root "Trusted Root Certification Authorities"
CTL 0 added to store.
CertUtil: -addstore command completed successfully.

Также вы можете импортировать сертификаты из консоли управления сертификатами (Trust Root CertificationAuthorities –>Certificates -> All Tasks > Import). Укажите путь к вашему STL файлу сертификатами.

импорт stl сертфикатов

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

Certificate Trust List (STL) в windows

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

certutil -enterprise -f -v -AddStore disallowed "C:\PS\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).

корневые сертфикаты crt для windows

Затем с помощью 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\

настроить каталог RootDirURL для обновления сертфикатов с помощью gpo

Осталось назначить эту политику на компьютеры и после обновления настроек GPO на клиенте проверить появление новых корневых сертификатов в хранилище.

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

Обновление корневых сертификатов в Windows 7

Несмотря на то, что Windows 7 уже снята с поддержки, есть много пользователей и компаний, в которых она еще используется.

После установки чистой Windows 7 из образа вы может столкнуться, что многие современные программы и инструменты на ней не работают из-за того, что они подписаны с помощью новых сертификатов. В частности, были жалобы, что в Windows 7 64 без обновления сертификатов не удается установить .Net Framework 4.8. или

vs_Community.exe с ошибкой:

installer manifest failed signature validation

Чтобы обновить корневые сертификаты в Windows 7, нужно скачать и установить MSU обновление: KB2813430.

После этого вы можете использовать утилиту certutil для генерации SST файла с сертификатами (на этом или на другом компьютере):

certutil.exe -generateSSTFromWU c:\ps\roots.sst

Теперь можно импортировать сертификаты в доверенные:

MMC -> add snap-in -> certificates -> computer account > local computer. Перейдите в раздел Trusted root certification authority, выберите All Tasks -> Import, найдите ваш SST файл (в типе файлов выберите Microsoft Serialized Certificate Store — *.sst) -> Open -> Place all certificates in the following store -> Trusted Root Certification Authorities

Утилита rootsupd.exe для обновления сертификатов в Windows XP

В Windows XP для обновления корневых сертификатов использовалась утилита rootsupd.exe. В этой утилита содержится список корневых и отозванных сертификатов, зашитых в которой регулярно обновлялся. Сама утилита распространялась в виде отдельного обновления KB931125 (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

    rootsupd.exe утилита обновления списка корневых сертфикатов для Windows XP

  3. Сертификаты содержатся в SST файлах: authroots.sst, delroot.sst и т.п. Для удаления/установки сертификатов можно воспользоваться командами:
    updroots.exe authroots.sst
    updroots.exe -d delroots.sst

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

Была информация, что утилиту updroots.exe нежелательно использовать в современных билдах Windows 10 1803+, т.к. она может сломать корневой сертификат Microsoft Root Certificate Authority.

В этой статье мы рассмотрели несколько способов обновления корневых сертификатов на компьютерах Windows, изолированных от Интернета.

Установка самоподписанных сертификатов весьма частая задача для системного администратора. Обычно это делается вручную, но если машин не один десяток? И как быть при переустановке системы или покупке нового ПК, ведь сертификат может быть и не один. Писать шпаргалки-напоминалки? Зачем, когда есть гораздо более простой и удобный способ — групповые политики ActiveDirectory. Один раз настроив политику можно больше не беспокоится о наличии у пользователей необходимых сертификатов.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Сегодня мы рассмотрим распространение сертификатов на примере корневого сертификата Zimbra, который мы экспортировали в прошлой статье. Наша задача будет стоять следующим образом — автоматически распространять сертификат на все компьютеры входящие в подразделение (OU) — Office. Это позволит не устанавливать сертификат туда, где он не нужен: на севера, складские и кассовые рабочие станции и т.д.

Откроем оснастку Управление групповой политикой и создадим новую политику в контейнере Объекты групповой политики, для этого щелкните на контейнере правой кнопкой и выберите Создать. Политика позволяет устанавливать как один, так и несколько сертификатов одновременно, как поступить — решать вам, мы же предпочитаем создавать для каждого сертификата свою политику, это позволяет более гибко менять правила их применения. Также следует задать политике понятное имя, чтобы открыв консоль через полгода вам не пришлось мучительно вспоминать для чего она нужна.

AD-certificate-GPO-001.jpg

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

AD-certificate-GPO-002.jpg

Теперь щелкнем на политику правой кнопкой мыши и выберем Изменить. В открывшемся редакторе групповых политик последовательно разворачиваем Конфигурация компьютераКонфигурация WindowsПараметры безопасностиПолитики открытого ключаДоверенные корневые центры сертификации. В правой части окна в меню правой кнопкой мыши выбираем Импорт и импортируем сертификат.

AD-certificate-GPO-003.jpg

Политика создана, теперь самое время проверить правильность ее применения. В оснастке Управление групповой политикой выберем Моделирование групповой политики и запустим по правому щелчку Мастер моделирования.

AD-certificate-GPO-004.jpg

Большинство параметров можно оставить по умолчанию, единственное что следует задать — это пользователя и компьютер для которых вы хотите проверить политику.

AD-certificate-GPO-005.jpg

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

AD-certificate-GPO-006.jpg

После чего проверим работу политики на клиентском ПК, для этого обновим политики вручную командой:

gpupdate

AD-certificate-GPO-007.jpg

Теперь откроем хранилище сертификатов. Проще всего это сделать через Internet Explorer: Свойства обозревателя Содержание Сертификаты. Наш сертификат должен присутствовать в контейнере Доверенные корневые центры сертификации.

AD-certificate-GPO-008.jpg

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

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Напоминалка как раскатать сертификат на компьютеры или сервера домена с помощью групповых политик GPO.

Классическая задача для системного администратора, распространить SSL сертификат в список доверенных корневых сертификатов по рабочим станциям домена.

Имеется сертификат, рабочая станция, естественно, ему не доверяет.

ssl

Открываем консоль управления доменными групповыми политиками Group Policy Management (GPO).

gpmc.msc

Создаём новую политику. Указываем какое-то название.

gpo

Редактируем созданную групповую политику.

gpo

В редакторе GPO переходим в раздел Computer Configuration → Policies → Windows Settings → Security Settings → Public Key Policies → Trusted Root Certification Authorities (Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Политики открытого ключа → Доверенные корневые центры сертификации). Правой кнопкой, Import.

gpo

Открывается мастер по импорту сертификатов. Next.

gpo

Выбираем сертификат, который требуется распространить через новую политику. Next.

gpo

Помещаем сертификат в хранилище Trusted Root Certification Authorities (Доверенные корневые центры сертификации). Next.

gpo

Finish.

gpo

Сертификат импортирован. OK.

Сертификат добавлен в групповую политику. При необходимости можно загрузить несколько сертификатов.

ssl

Применяем созданную групповую политику к необходимой группе объектов. Протестирую для начала на себе, применяю политику к своему компьютеру. На компьютере обновляю групповые политики:

gpupdate /force

Компьютер автоматически скачивает сертификат и добавляет его в доверенные корневые центры сертификации.

ssl

Проверяю сертификат. Компьютер ему доверяет. Теперь можно применить политику уже к целевой аудитории.

You can use Windows Group Policy (GPO) to centrally install a specific certificate on all computers in a domain by adding it to each computer’s Trusted Root Certificate store. This may be necessary if you are deploying your own Certification Authority (CA) and need to add the root certificate as a trusted one on all user computers; add a specific site’s SSL/TLS certificate to the trusted list; install an HTTPS certificate to inspect user traffic at the Internet gateway; distribute a self-signed driver or application certificate.

Contents:

  • How to Export an SSL/TLS Certificate to a File on Windows
  • Install Certificates on Windows Devices by Using Group Policy
  • Removing Trusted Certificates using GPO

How to Export an SSL/TLS Certificate to a File on Windows

In this example, we are going to deploy a self-signed SSL certificate to domain computers that is bound to the HTTPS site running on the IIS web server. By default, the browser and other applications will warn you that the site’s certificate is untrusted and it is not safe to use the service. To remove this warning, you must add the site certificate to the trusted root certificate store on the user’s computer.

First, export the certificate public key to a CER, CRT, or PEM file. You can export the certificate directly from the browser. If you are using Microsoft Edge, click in the address bar: Not Secure -> Show Certificate -> Details -> Export. Save the certificate as a file in BASE64 format with a CRT or PEM extension.

export web site certificate public key to file

You can use the WebRequest PowerShell method to get the SSL certificate of the HTTPS site and export it in a CER file:

$webRequest = [Net.WebRequest]::Create("https://exchange_cas/owa")
try { $webRequest.GetResponse() } catch {}
$getcert = $webRequest.ServicePoint.Certificate
$bytes = $getcert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Cert)
set-content -value $bytes -encoding byte -path "c:\ps\your_exchange_cert.cer"

You can also manually export the installed certificate from the local cert store on the user’s computer. In this example, the certificate is a simple self-signed certificate created using PowerShell:

  1. Open the snap-in mmc.exe -> File -> Add/Remove Snap-in -> add the Certificates snap-in -> Computer account (if the certificate is installed in the user cert store, select My User Account) -> Local computer;
  2. Expand the store where the certificate is installed (in this case, the Trusted Root Certification store) and locate it;
  3. Right-click the certificate -> All Tasks -> Export;
    Export certificate from Trusted root CA on Windows

  4. Select the DER encoded binary X.509 (.CER) format and specify the path to the certificate file (you should not export a private key for a certificate if it exists).
    Export certificate to CER file

Install Certificates on Windows Devices by Using Group Policy

The next step is to create a domain GPO that will install the certificate on the computers.

  1. Open the domain GPO management console (gpmc.msc), Select the OU that contains the computers on which you want to deploy the certificate, and select Create a GPO in this domain and Link it here;
  2. Specify the name of the policy and switch to Edit mode;
  3. In the GPO editor, go to the Computer Configuration –> Policies –> Windows Settings –> Security Settings –> Public Key Policies –> Trusted Root Certification Authorities. Right-click and select Import;
  4. Specify the path to the certificate file you exported earlier;
  5. Select to place the certificate in the Trusted Root Certification Authorities store;
  6. A single GPO allows you to install multiple certificates at once. The following summary certificate fields are displayed in the GPMC console on the Settings tab: Issued To, Issued By, Expiration Date, and Intended Purposes;
    certificate summary info in GPO

    You can use GPO security filtering or WMI GPO filtering to deploy a certificate only to computers that are added to a specific AD group. [alert]

  7. Update Group Policy settings on the client computer (run the command gpupdate /force ), Open the computer Certificate Management console (certlm.msc). Check that the computer has automatically downloaded, installed, and added the certificate to the trusted root store.
    new certificate installed

Check that the client browser no longer displays an untrusted certificate warning when accessing an HTTPS site.

Removing Trusted Certificates using GPO

If a trusted certificate has expired, is compromised, or needs to be replaced, you can use the GPO to remove it from all computers automatically.

[alert] Use the Sigcheck tool to scan the Windows trusted certificate store for third-party, suspicious, and revoked certificates.

If you want to remove a certificate that was previously manually installed on all computers, you can use a GPO logon script

First, obtain the thumbprint of the certificate you want to delete. List certificates with their thumbprints in the root cert store:

In the Netlogon directory on the AD domain controller, create the file delete_cert_iis.bat (\\woshub.loc\NETLOGON\).

Remind you to update trusted root certificates on Windows computers regularly. By default, Windows machines automatically download and install trusted Microsoft certificates. But this may not work in an isolated environment.

Ранее уже приходилось сталкиваться с проблемой невозможности корректного развёртывания ПО из-за того, что на целевых компьютерах с OC Windows не обновляется хранилище сертификатов доверенных корневых центров сертификации (далее для краткости будем называет это хранилище TrustedRootCA). На тот момент вопрос был снят с помощью развёртывания пакета rootsupd.exe, доступного в статье KB931125, которая относилась к ОС Windows XP. Теперь же эта ОС полностью снята с поддержки Microsoft, и возможно, поэтому данная KB-статья более недоступна на сайте Microsoft. Ко всему этому можно добавить то, что уже даже на тот момент времени решение с развёртыванием уже устаревшего в ту пору пакета сертификатов было не самым оптимальным, так как тогда в ходу были системы с ОС Windows Vista и Windows 7, в которых уже присутствовал новый механизм автоматического обновления хранилища сертификатов TrustedRootCA. Вот одна из старых статей о Windows Vista, описывающих некоторые аспекты работы такого механизма — Certificate Support and Resulting Internet Communication in Windows Vista. Недавно я снова столкнулся с исходной проблемой необходимости обновления хранилища сертификатов TrustedRootCA на некоторой массе клиентских компьютеров и серверов на базе Windows. Все эти компьютеры не имеют прямого доступа в Интернет и поэтому механизм автоматического обновления сертификатов не выполняет свою задачу так, как хотелось бы. Вариант с открытием всем компьютерам прямого доступа в Интернет, пускай даже на определённые адреса, изначально рассматривался как крайний, а поиски более приемлемого решения привел меня к статье Configure Trusted Roots and Disallowed Certificates (RU), которая сразу дала ответы на все мои вопросы. Ну и, в общем то, по мотивам этой статьи, в данной заметке я кратко изложу на конкретном примере то, каким образом можно централизованно перенастроить на компьютерах Windows Vista и выше этот самый механизм авто-обновления хранилища сертификатов TrustedRootCA, чтобы он использовал в качестве источника обновлений файловый ресурс или веб-сайт в локальной корпоративной сети.

Для начала, на что нужно обратить внимание, это на то, что в групповых политиках, применяемых к компьютерам, не должен быть задействован параметр блокирующий работу механизма авто-обновления. Это параметр Turn off Automatic Root Certificates Update в разделе Computer Configuration > Administrative Templates > System > Internet Communication Management > Internet Communication settings. Нам потребуется, чтобы этот параметр был Выключен, либо просто Не настроен.

Если взглянуть на хранилище сертификатов TrustedRootCA в разделе Локальный компьютер, то на системах, не имеющих прямого доступа в Интернет, набор сертификатов будет прямо так скажем небольшой:

image

В статье KB2677070 — Доступно автоматическое обновление отозванных сертификатов для систем Windows Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2 можно найти актуальные на данный момент ссылки на файлы, прямой доступ к которым (минуя прокси с требованием аутентификации) может потребоваться для функций авто-обновления:

  • http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab
  • http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab

Но вариант прямого доступа в рамках данной заметки мы больше упоминать не станем и рассмотрим пример локализации процесса обновления в соответствии с ранее упомянутой статьёй.

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

Попробуем на компьютере имеющем прямое подключение к Интернету выполнить команду генерации SST файла, который будет в себе содержать актуальный набор файлов корневых сертификатов. В данном случае на компьютере с Windows 10 выполняется команда, вызывающая входящую в базовый состав ОС утилиту Certutil, которая в свою очередь обращается к веб-узлу Microsoft и создаёт по указанному нами пути SST файл:

Certutil -generateSSTFromWU C:\Temp\WURoots.sst

Полученный в результате выполнения команды SST-файл по сути является контейнером, который содержит в себе все сертификаты для нужного нам обновления системы. Этот контейнер легко открывается в Проводнике Windows загружая ассоциированную с расширением файла оснастку управления сертификатами.

image

Этот файл удобно использовать, например, когда из всего подмножества доступных сертификатов нужно выбрать лишь некоторый набор и выгрузить их в отдельный SST файл для дальнейшей загрузки, например, с помощью консоли управления локальными сертификатами или с помощью консоли управления групповыми политиками (для импорта в какую-либо доменную политику через параметр Computer Configuration > Policies > Windows Settings > Security Settings > Public Key Policies > Trusted Root Certification Authorities).

Однако для интересующего нас способа распространения корневых сертификатов, с помощью модификации работы механизма авто-обновления на конечных клиентских компьютерах, нам потребуется несколько иное представление множества актуальных корневых сертификатов. Получить его можно с помощью всё той же утилиты Certutil, но уже с другим набором ключей.

В нашем примере в качестве локального источника распространения будет использована общая сетевая папка на файловом сервере. И здесь важно обратить внимание на то, что при подготовке такой папки обязательно нужно ограничивать доступ на запись, чтобы не получилось так, что любой желающий сможет модифицировать набор корневых сертификатов, которые потом будут «разливаться» по множеству компьютеров.

Certutil -syncWithWU -f -f \\FILE-SERVER\SHARE\RootCAupd\GPO-Deployment\

Ключи -f -f используются для форсированного обновления всех файлов в каталоге назначения.

В результате выполнения команды в указанной нами сетевой папке появится множество файлов общим объемом примерно в пол мегабайта:

image

Согласно ранее упомянутой статьи, назначение файлов следующее:

  • Файл authrootstl.cab содержит сторонние списки доверия сертификатов;
  • Файл disallowedcertstl.cab содержит список доверия сертификатов с недоверенными сертификатами;
  • Файл disallowedcert.sst содержит хранилище сериализованных сертификатов, включая недоверенные сертификаты;
  • Файлы с именами типа thumbprint.crt содержат сторонние корневые сертификаты.

Итак, файлы необходимые для работы механизма авто-обновления получены, и мы теперь переходим к реализации изменения схемы работы этого самого механизма. Для этого, как всегда, нам на помощь приходят доменные групповые политики Active Directory (GPO), хотя можно использовать и другие инструменты централизованного управления, весь всё, что нам нужно сделать на всех компьютерах — это изменить, вернее добавить, всего один параметр реестра RootDirURL в ветке HKLM\Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate, который и определит путь к нашему сетевому каталогу, в котором мы ранее разместили набор файлов корневых сертификатов.

Говоря о настройке GPO, для реализации поставленной задачи, опять же, можно использовать разные варианты. Например, есть «олд-скульный» вариант с созданием собственного шаблона групповой политики, так как это описано в уже знакомой нам статье. Для этого создадим файл в формате административного шаблона GPO (ADM), например, с именем RootCAUpdateLocalPath.adm и содержимым:

CLASS MACHINE
CATEGORY !!SystemCertificates
    KEYNAME "Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate"
    POLICY !!RootDirURL
       EXPLAIN !!RootDirURL_help
       PART !!RootDirURL EDITTEXT
             VALUENAME "RootDirURL"
       END PART
    END POLICY
END CATEGORY
[strings]
RootDirURL="URL address to be used instead of default ctldl.windowsupdate.com"
RootDirURL_help="Enter a FILE or HTTP URL to use as the download location of the CTL files."
SystemCertificates="Windows AutoUpdate Settings"

Скопируем этот файл на контроллер домена в каталог %SystemRoot%\inf (как правило, это каталог C:\Windows\inf). После этого перейдём в редактор доменных групповых политик и создадим отдельную новую политику, открыв затем её на редактирование. В разделе Computer Configuration > Administrative Templates… откроем контекстное меню и выберем пункт подключения нового шаблона политик Add/Remove Templates

image

В открывшееся окне с помощью кнопки обзора выберем ранее добавленный файл %SystemRoot%\inf\RootCAUpdateLocalPath.adm, и после того, как шаблон появится в списке, нажмём Close.

image

После проделанного действия в разделе Configuration > Administrative Templates > Classic Administrative Templates (ADM) появится группа Windows AutoUpdate Settings, в которой будет доступен единственный параметр URL address to be used instead of default ctldl.windowsupdate.com

image

Откроем этот параметр и введём путь к локальному ресурсу, на котором мы расположили загруженные ранее файлы обновления, в формате http://server1/folder или file://\\server1\folder,
например file://\\FILE-SERVER\SHARE\RootCAupd\GPO-Deployment

image

Сохраним проделанные изменения и применим созданную политику к доменному контейнеру, в котором расположены целевые компьютеры. Однако рассмотренный метод настройки GPO имеет ряд недостатков и именно поэтому я назвал его «олд-скульным».

Другой, более современный и более продвинутый метод настройки реестра клиентов  —  это использование Group Policy Preferences (GPP). При таком варианте мы можем создать соответствующий объект GPP в разделе групповой политики Computer Configuration > Preferences > Registry с обновлением параметра (Action: Update) реестра RootDirURL (тип значения REG_SZ) 

image

При необходимости можем для созданного параметра GPP включить гибкий механизм нацеливания (Закладка Common > Опция Item-level targeting) на конкретный компьютер или группу компьютеров для предварительного тестирования того, что у нас в конечном итоге получиться после применения групповых политик.

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

После настройки групповых политик на любом подопытном клиентском компьютере выполним обновление командой gpupdate /force c последующей перезагрузкой. После загрузки системы проверим в реестре наличие созданного ключа и попробуем проверить наличие факта обновления хранилища корневых сертификатов. Для проверки воспользуемся простым но действенным примером описанным в заметке Trusted Roots and Disallowed Certificates.

Для примера посмотрим, есть ли в хранилище сертификатов компьютера корневой сертификат, использованный для выпуска сертификата, который установлен на сайте с именем buypass.no (но на сам сайт пока не переходим :)).

image

Сделать это удобнее всего с помощью средств PowerShell:

Get-ChildItem cert:\localmachine\root | Where {$_.friendlyname -like "*Buypass*"}

С большой долей вероятности у нас не окажется такого корневого сертификата. Если так, то откроем Internet Explorer и обратимся к URL https://buypass.no. И если настроенный нами механизм автоматического обновления корневых сертификатов работает успешно, то в event-логе Windows Application при это появится событие c источником (Source) CAPI2, свидетельствующее об успешной загрузке нового корневого сертификата :

Имя журнала:   Application
Источник:      Microsoft-Windows-CAPI2
Дата:          04.08.2016 18:20:45
Код события:   4097
Категория задачи:Отсутствует
Уровень:       Сведения
Ключевые слова:Классический
Пользователь:  Н/Д
Компьютер:     KOM-WS306.holding.com
Описание:
Успешное автоматическое обновление стороннего корневого сертификата:: субъект:  < CN=Buypass Class 3 Root CA, O=Buypass AS-983163327, C=NO > ; отпечаток SHA1:  < DAFAF7FA6684EC068F1450BDC7C281A5BCA96457 > .

image

После этого мы можем снова выполнить указанную ранее команду запроса к хранилищу корневых сертификатов и увидим, что теперь в нём действительно появился новый корневой сертификат, именно тот который фигурировал в событии event-лога Windows:

image

Как видим, механизм авто-обновления работает и теперь всё, что остаётся, это организовать поддержку в актуальном состоянии файлов в сетевой папке, запланировав, например на ночное время, ежесуточное выполнение задания обновления ранее упомянутой командой:

Certutil -syncWithWU -f -f \\FILE-SERVER\SHARE\RootCAupd\GPO-Deployment\

На этом всё.

Дополнительные источники информации:

  • TechNet Library — Configure Trusted Roots and Disallowed Certificates (RU)
  • TechNet Wiki — Microsoft Trusted Root Certificate Program Updates
  • adevis Blog — Trusted Roots and Disallowed Certificates

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Патч для сканера canon windows 10
  • Лучшие бесплатные оптимизаторы для windows 10
  • Cleartype windows 10 как включить
  • Программа для просто изображений windows 10
  • Как изменить расширение файла в windows 10 с txt на xml