С помощью групповых политик Windows вы можете централизованно установить определенный сертификат на все компьютеры домена, добавив его в хранилище доверенных корневых сертификатов каждого компьютера. Это может понадобиться, когда вы развертываете собственный Certification Authority (CA) и вам нужно добавить корневой сертификат в доверенные на все компьютеры пользователей; добавляете в доверенные SSL/TLS сертификат определенного сайта; устанавливаете HTTPS сертификат для инспекции трафика пользователей на интернет-шлюзе; распространяете сапомодписанный сертификат драйвера или приложения.
Экспорт сертификата в Windows
В этом примере мы установим на компьютеры самоподписанный SSL сертификат HTTPS сайта на веб сервере IIS. По умолчанию браузер и другие приложений пишут, что сертификат сайта недоваренный и использовать этот сервис небезопасно. Чтобы убрать это предупреждение, нужно добавить сертификат сайта в доверенные на компьютере пользователи.
Сначала вам нужно экспортировать открытый ключ сертификата в CER, CRT или PEM файл. Вы можете экспортировать сертификат прямо из браузера. В случае Microsoft Edge щелкните в адресной строке браузера по полую Not Secure -> Show Certificate -> Details -> Export. Сохраните сертификат файл типа BASE64 с расширением CRT или PEM.
$webRequest = [Net.WebRequest]::Create("https://target-site.loc")
try { $webRequest.GetResponse() } catch {}
$cert = $webRequest.ServicePoint.Certificate
$bytes = $cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Cert)
set-content -value $bytes -encoding byte -path "c:\ps\get_site_cert.cer"
Также вы можете в Windows вручную экспортировать установленный сертификат из локального хранилища компьютера пользователя). В данном примере это простой самоподписанный сертификат, созданный с помощью PowerShell:
- Откройте консоль
mmс.exe
-> File -> Add/Remove Snap-in -> оснастка Certificates -> Computer account (если сертификат установлен в хранилище пользователя, выберите My User Account) -> Local computer; - Разверните хранилище, в которое установлен сертификат (в нашем примере это хранилище Trusted Root Certification) и найдите его;
- Щелкните правой кнопкой -> All Tasks -> Export
- Выберите DER encoded binary X.509 (.CER) и укажите путь к файлу сертификата (если для сертификата доступен закрытый ключ, не нужно экспортировать его).
Настройка групповой политики установки сертификата
Теперь нужно создать в домене GPO, которая будет устанавливать сертификат на компьютеры.
- Откройте консоль управления доменными GPO (Group Policy Management,
gpmc.msc
), выберите OU с компьютерами, на который нужно распространить сертификат и выберите Create a GPO in this domain and Link it here; - Укажите имя политики и перейдите в режим редактирования;
- В редакторе GPO перейдите в раздел Computer Configuration –> Policies –> Windows Settings –> Security Settings –> Public Key Policies –> Trusted Root Certification Authorities (Конфигурация компьютера –> Конфигурация Windows –> Параметры безопасности –> Политики открытого ключа –> Доверенные корневые центры сертификации). Выберите Import;
- Укажите путь к файлу сертификата, который вы экспортировали ранее.
- Укажите, что нужно поместить сертификат в хранилище Trusted Root Certification Authorities (Доверенные корневые центры сертификации).
- Одна политика позволяет установить сразу несколько сертификатов. В консоли GPMC на вкладке Settings отображаются следующие поля сертификата: Issued To, Issued By, Expiration Date и Intended Purposes; С помощью GPO Security Filtering можно распростраиить сертификат только на копьютеры, которые добавлены в определенную группу AD.
- Обновите настройки групповых политик на клиенте (команда
gpupdate /force
), откройте консоль управления сертификатами компьютера (certlm.msc
). Компьютер автоматически скачает сертификат, установите его и добавить в хранилище доверенных корневых сертификатов.
Проверьте, что в браузере клиента теперь не отображается уведомление о недоверенном сертификате при доступе к HTTPS сайту.
Удалить сертификат с помощью GPO
Если сертификат просрочен, скомпрометирован, или должен быть заменен, вы можете также автоматически удалить его на всех компьютерах через GPO.
sigcheck
.- Не отлинкуя GPO от целевого контейнера AD, откройте настройки политики, выберите сертификат и удалите его;
- Сертификат автоматически будет удален со всех устройств, на которые действует данная политика.
Если вам нужно на всех компьютерах удалить сертификат, который был установлен ранее вручную, нужно создать логон скрипт GPO.
Сначала нужно получить отпечаток сертификата (thumbprint), который вы хотите удалить. Выведите список всех сертификатов с отпечатками в корневом хранилище:
Get-ChildItem -Path Cert:\LocalMachine\Root
Создайте на контролрее домена AD в каталоге Netlogon
\\winitpro.ru\NETLOGON\
следующий файл delete_cert_iis.bat:
certutil –delstore Root 2A7B44F11B7FFCFB25B5543D20BFBF095E60DB44
Настройте автоматический запуск этого BAT при загрузке Windows (подробнее об использовании логон скриптов GPO).