Корневые сертификаты — фундамент безопасности в Windows. Каждый раз, когда вы открываете HTTPS-сайт, подписываете документ или подключаетесь к VPN, операционная система проверяет цепочку доверия от сертификата сервера до корневого центра сертификации. Если корневой сертификат отсутствует или просрочен, вы увидите ошибку: SEC_ERROR_UNKNOWN_ISSUER, CERT_TRUST_IS_UNTRUSTED_ROOT или просто «Ваше подключение не является приватным».

В этой статье разберём все способы обновления корневых сертификатов: автоматическое обновление через Windows Update, ручная установка через certutil и PowerShell, развёртывание через групповые политики и особый случай — изолированные сети без доступа к интернету. Материал актуален для Windows 10, Windows 11, Windows Server 2019 и 2022.

Как Windows управляет корневыми сертификатами

Windows хранит корневые сертификаты в специальном системном хранилище — Trusted Root Certification Authorities (Доверенные корневые центры сертификации). Это хранилище можно просмотреть несколькими способами.

Просмотр через MMC-консоль

  1. Нажмите Win + R, введите mmc.exe
  2. Меню ФайлДобавить или удалить оснастку
  3. Выберите СертификатыДобавить
  4. Укажите Учётная запись компьютераЛокальный компьютер
  5. Разверните: CertificatesTrusted Root Certification AuthoritiesCertificates

Просмотр через PowerShell

Get-ChildItem cert:\LocalMachine\Root | Format-List

Для проверки сертификатов, срок действия которых истекает в ближайшие 30 дней:

Get-ChildItem cert:\LocalMachine\Root |
  Where-Object { $_.NotAfter -lt (Get-Date).AddDays(30) } |
  Select-Object NotAfter, Subject | Format-Table -AutoSize

Быстрый просмотр через certlm.msc

Самый быстрый способ — запустить certlm.msc (менеджер сертификатов локального компьютера). Оснастка откроется сразу с нужным хранилищем.

Совет: Чистая установка Windows 10/11 содержит около 30–40 корневых сертификатов. Остальные устанавливаются автоматически «по требованию» при первом обращении к сайту или сервису, использующему соответствующий сертификат.

Автоматическое обновление: как оно работает и почему может не работать

По умолчанию Windows автоматически загружает корневые сертификаты из Microsoft Trusted Root Certificate Program через Windows Update. Когда приложение обращается к HTTPS-ресурсу и обнаруживает неизвестный корневой сертификат, система проверяет его отпечаток в онлайн-списке Microsoft и, при совпадении, автоматически загружает и устанавливает его.

Автообновление может быть отключено в нескольких случаях:

Проверка статуса автообновления

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

Если значение равно 1 — автообновление отключено. Для включения:

Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\SystemCertificates\AuthRoot' -Name DisableRootAutoUpdate -Value 0

Ручное обновление через certutil

Самый надёжный способ обновить все корневые сертификаты разом — утилита certutil.exe, встроенная в Windows.

Генерация SST-файла со всеми сертификатами

certutil.exe -generateSSTFromWU C:\Temp\roots.sst

Эта команда обращается к серверам Windows Update и скачивает полный набор корневых сертификатов в формате Microsoft Serialized Certificate Store (.sst). Файл можно открыть двойным кликом — откроется MMC-оснастка со списком всех сертификатов (обычно 400–500 штук).

Важно: Команда требует прямого доступа к серверам ctldl.windowsupdate.com. Если компьютер за прокси или в изолированной сети, используйте метод с промежуточным компьютером, описанный ниже.

Скачивание индивидуальных файлов сертификатов

certutil -syncWithWU C:\Temp\Certs\

В отличие от первой команды, эта скачивает каждый сертификат отдельным .crt-файлом, а также файлы authrootstl.cab и disallowedcertstl.cab. Полезно для детального анализа или выборочной установки.

Установка из SST-файла через PowerShell

$sstStore = Get-ChildItem -Path C:\Temp\roots.sst
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root

Установка через консоль certlm.msc

  1. Запустите certlm.msc
  2. Перейдите в Trusted Root Certification AuthoritiesCertificates
  3. Правый клик → All TasksImport
  4. Выберите файл roots.sst (тип файлов: All files или Microsoft Serialized Certificate Store)

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

Microsoft также публикует Certificate Trust List (CTL) — подписанный список отпечатков (thumbprints) доверенных корневых сертификатов. Это файл authroot.stl, который можно скачать отдельно.

Скачивание STL-файла

URL для загрузки:

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

Файл обновляется Microsoft примерно дважды в месяц. Распакуйте архив — внутри файл authroot.stl.

Установка STL-файла

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

Установка списка отозванных сертификатов

Помимо доверенных, Microsoft публикует список запрещённых (disallowed) сертификатов — скомпрометированных или отозванных:

certutil -enterprise -f -v -AddStore disallowed "C:\Temp\disallowedcert.stl"
Совет: Всегда устанавливайте и доверенные, и отозванные списки. Отозванные сертификаты не менее важны: они защищают от скомпрометированных центров сертификации, таких как DigiNotar.

Обновление в изолированных сетях через GPO

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

Способ 1: логон-скрипт через GPO

Подготовка (на компьютере с интернетом):

certutil.exe -generateSSTFromWU \\dc01\SYSVOL\contoso.com\rootcert\roots.sst

Создайте PowerShell-скрипт и назначьте его через GPO как Computer Startup Script:

$sstPath = "\\dc01\SYSVOL\contoso.com\rootcert\roots.sst"
if (Test-Path $sstPath) {
    $sstStore = Get-ChildItem -Path $sstPath
    $sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
    Write-EventLog -LogName Application -Source "CertUpdate" -EventId 1000 -Message "Root certificates updated from $sstPath"
}

Способ 2: параметр RootDirURL через GPO

Более элегантный способ — указать Windows внутренний источник сертификатов вместо внешнего. Сначала подготовьте файлы:

certutil -syncWithWU -f \\dc01\SYSVOL\contoso.com\rootcert\

Затем через Group Policy Preferences создайте параметр реестра:

Важно: Убедитесь, что политика Turn off Automatic Root Certificates Update выключена (Not Configured) или отключена (Disabled). Если она включена, Windows не будет обращаться даже к внутреннему источнику RootDirURL.

Проверка успешного обновления

Дата последней синхронизации:

certutil -verifyctl AuthRoot | findstr /i "lastsynctime"

В Event Viewer ищите события CAPI2 в журнале Application:

Публикация корневых сертификатов в Active Directory

В доменной среде можно опубликовать корневые сертификаты непосредственно в Active Directory. Все компьютеры домена автоматически будут им доверять.

Публикация сертификатов в AD

# Скачиваем сертификаты
certutil -syncWithWU C:\Temp\Certs\

# Публикуем каждый сертификат в AD
$certs = Get-ChildItem -Path "C:\Temp\Certs" -Filter "*.crt"
foreach ($cert in $certs) {
    certutil.exe -dspublish -f $cert.FullName RootCA
}

Проверить публикацию можно через ADSIEdit.msc:

Внимание: Публикация сотен сертификатов в AD увеличивает размер базы данных и объём репликации. Используйте этот метод только для нескольких критически важных сертификатов. Для массового обновления предпочтительнее способ с RootDirURL.

Автоматизация обновления: скрипт для регулярного запуска

Создайте задачу в Task Scheduler, которая будет ежемесячно обновлять SST-файл на файловом сервере:

# Update-RootCerts.ps1 — запускать на машине с интернетом
$sharePath = "\\dc01\SYSVOL\contoso.com\rootcert"
$timestamp = Get-Date -Format "yyyy-MM-dd"

# Генерируем свежий SST
certutil.exe -generateSSTFromWU "$sharePath\roots.sst"

# Синхронизируем индивидуальные сертификаты
certutil -syncWithWU -f "$sharePath"

# Логируем
"[$timestamp] Root certificates updated" | Out-File -Append "$sharePath\update.log"
Write-Host "Root certificates updated at $timestamp" -ForegroundColor Green

Диагностика проблем с сертификатами

Проверка цепочки доверия

certutil -verify -urlfetch C:\Temp\server-cert.cer

Проверка конкретного HTTPS-сайта

# PowerShell
$url = "https://example.com"
$request = [System.Net.WebRequest]::Create($url)
$request.GetResponse() | Out-Null
$cert = $request.ServicePoint.Certificate
Write-Host "Subject: $($cert.Subject)"
Write-Host "Issuer: $($cert.Issuer)"
Write-Host "Valid: $($cert.GetEffectiveDateString()) - $($cert.GetExpirationDateString())"

Экспорт текущего хранилища для сравнения

Get-ChildItem cert:\LocalMachine\Root |
  Select-Object Thumbprint, Subject, NotAfter |
  Export-Csv -Path C:\Temp\root-certs-audit.csv -NoTypeInformation -Encoding UTF8

Чеклист: обновление корневых сертификатов

Корневые сертификаты — невидимый, но критически важный компонент IT-инфраструктуры. Устаревшие сертификаты приводят к сбоям HTTPS, проблемам с VPN, ошибкам проверки подписи и невозможности работы с государственными порталами. Регулярное обновление — простая процедура, которая предотвращает целый класс проблем. Настройте автоматическое обновление один раз — и забудьте о проблемах с сертификатами навсегда.

Часто задаваемые вопросы

Почему браузер показывает ошибку сертификата на HTTPS-сайтах?

Чаще всего причина в устаревших корневых сертификатах. Windows автоматически загружает новые сертификаты при обращении к HTTPS-сайтам, но если автообновление отключено через GPO или нет доступа к Windows Update, хранилище устаревает и браузер не может проверить цепочку доверия.

Как обновить корневые сертификаты на компьютере без интернета?

Используйте команду certutil -generateSSTFromWU roots.sst на компьютере с интернетом, скопируйте файл на целевую машину и импортируйте через PowerShell. Для массового развёртывания настройте GPO с параметром RootDirURL.

Безопасно ли устанавливать все корневые сертификаты Microsoft?

Да, файл roots.sst содержит только сертификаты, одобренные программой Microsoft Trusted Root Certificate Program. Они проходят регулярный аудит.

Сколько корневых сертификатов должно быть в Windows?

Чистая установка Windows содержит около 30–40 корневых сертификатов. После полного обновления их количество может превысить 400–500. Это нормально.

Нужна помощь специалистов?

ООО «АйТи Фреш» возьмёт это на себя

Не хватает времени или своих специалистов — мы настроим, оптимизируем и возьмём вашу IT-инфраструктуру на постоянное сопровождение. Работаем с юридическими лицами в Москве и регионах.

15+лет опыта
25+клиентов
40Gсвоя сеть
24/7поддержка