Где хранятся сертификаты в windows системах. Не удается построить цепочку сертификатов для доверенного корневого центра Где находятся доверенные корневые центры сертификации

04.11.2020 Наследство

с проблемой невозможности корректного развёртывания ПО из-за того, что на целевых компьютерах с 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 в разделе Локальный компьютер , то на системах, не имеющих прямого доступа в Интернет, набор сертификатов будет прямо так скажем небольшой:

Этот файл удобно использовать, например, когда из всего подмножества доступных сертификатов нужно выбрать лишь некоторый набор и выгрузить их в отдельный 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 используются для форсированного обновления всех файлов в каталоге назначения.

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

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

  • Файл 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 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

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

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

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

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

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

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

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

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

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

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

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

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

Имя журнала: Application
  • «Другие пользователи» — хранилище сертификатов контролирующих органов;
  • «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации» — хранилища сертификатов Удостоверяющего Центра.

Установка личных сертификатов производится только с помощью программы Крипто Про.

Для запуска консоли необходимо выполнить следующие действия

1. Выбрать меню «Пуск» > «Выполнить» (или на клавиатуре одновременно нажать клавиши «Win+R»).

2. Указать команду mmc и нажать на кнопку «ОК».

3. Выбрать меню «Файл» > «Добавить или удалить оснастку».

4. Выбрать из списка оснастку «Сертификаты» и кликнуть по кнопке «Добавить».

5. В открывшемся окне установить переключатель «Моей учетной записи пользователя» и нажать на кнопку «Готово».

6. Выбрать из списка справа добавленную оснастку и нажать на кнопку «ОК».

Установка сертификатов

1. Открыть необходимое хранилище (например, доверенные корневые центры сертификации). Для этого раскрыть ветку «Сертификаты — текущий пoльзователь» > «Доверенные корневые центры сертификации» > «Сертификаты».

2. Выбрать меню «Действие» > «Все задачи» > «Импорт».

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

5. В следующем окне необходимо нажать на кнопку «Далее» (нужное хранилище выбрано автоматически).

6. Нажать на кнопку «Готово» для завершения импорта.

Удаление сертификатов

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

Раскрыть ветку «Сертификаты — текущий пoльзователь» > «Другие пользователи» > «Сертификаты». В правой части окна отобразятся все сертификаты, установленные в хранилище «Другие пользователи». Выделите необходимый сертификат, щелкните по нему правой кнопкой мыши и выберите «Удалить».

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

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

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

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

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

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

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

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

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

Gpupdate

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

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

Если при попытке установить соединение с Web-кабинетом открывается окно безопасности браузера (рис. 1), необходимо добавить корневой сертификат Московской Биржи moex.cer в список доверенных сертификатов.

Рисунок 1 – окно безопасности браузера

Для этого необходимо:

  1. ввести в поле поиска Windows имя файла certmgr.msc (рис. 2). Затем нажать левой кнопкой мыши на найденный файл. В результате откроется системный справочник сертификата (рис. 3);



    Рисунок 2 – поиск системного справочника сертификатов Рисунок 3 – системный справочник сертификатов
  2. перейти в раздел Сертификаты бокового меню (рис. 4). Затем нажать правой кнопкой мыши на папку Сертификаты и в открывшемся контекстном меню выбрать пункт Все задачи→Импорт (рис. 5).



    Рисунок 4 – доверенные справочники Рисунок 5 – импорт сертификата

    В результате откроется Мастер импорта сертификатов (рис. 6), в котором следует нажать кнопку Далее для перехода к выбору файла сертификата moex.cer (рис. 7);



    Рисунок 6 – мастер импорта сертификатов Рисунок 7 – диалоговое окно выбора импортируемого файла

  3. нажать кнопку Обзор (см. рис. 7, 1) и выбрать корневой сертификат Московской Биржи moex.cer. В результате в поле Имя файла отобразится путь к данному файлу (см. рис. 7,2). Затем следует нажать кнопку Далее (см. рис. 7,3);
  4. нажать кнопку Далее в диалоговом окне Хранилище сертификатов , не изменяя параметров по умолчанию (рис. 8), затем – кнопку Готово для завершения импорта сертификата (рис. 9).



    Рисунок 8 – хранилище сертификатов Рисунок 9 – завершение импортирования

По завершении импортирования откроется откроется окно безопасности Windows (рис. 10). Проверьте отпечаток ключа. Его номер должен совпадать номеру, указанному на рисунке (10,1). Если данные совпадают нажмите Да (рис. 10,2).



Рисунок 10 – окно безопасности Windows

В результате откроется уведомление об успешном импортирование сертификата Московской Биржи moex.cer в список доверенных сертификатов (рис. 11), в котором следует нажать кнопку ОК .


Рисунок 11 – завершение импортирования