В Windows корневые сертификаты автоматически обновляются через Windows Update в рамках программы Microsoft Trusted Root Certificate Program. Это обеспечивает доверие к SSL-сертификатам сайтов и подписанным приложениям. Однако в изолированных сетях или при отсутствии интернета автоматическое обновление невозможно, что может привести к ошибкам, например, Этот сайт не может обеспечить безопасное соединение в браузере или проблемам с запуском подписанных программ. В этой статье мы разберём, как вручную обновить корневые сертификаты в Windows 10/11, Windows 7 и Windows XP, а также как настроить их обновление через GPO в доменных сетях.
Зачем обновлять корневые сертификаты
Корневые сертификаты используются для проверки цепочки доверия SSL-сертификатов сайтов, приложений и скриптов. Без актуальных сертификатов могут возникнуть проблемы:
– Ошибки при доступе к HTTPS-сайтам.
– Невозможность установки программ, подписанных новыми сертификатами (например, .NET Framework 4.8).
– Ошибки выполнения подписанных PowerShell-скриптов.
Windows запрашивает обновления списка доверия (CTL) еженедельно, но без доступа к Windows Update это не работает.
Управление корневыми сертификатами в Windows
Просмотр хранилища сертификатов
1. Открытие консоли MMC
– Запустите mmc.exe с правами администратора.
– Выберите Файл -> Добавить или удалить оснастку.
– Добавьте оснастку Сертификаты, выберите Учётная запись компьютера -> Локальный компьютер.
– Разверните Сертификаты -> Доверенные корневые центры сертификации -> Сертификаты.
2. Просмотр сертификатов через PowerShell
Выведите список корневых сертификатов:
Get-ChildItem -Path Cert:\LocalMachine\Root | Format-List
Найдите сертификаты, истекающие в ближайшие 30 дней:
Get-ChildItem -Path Cert:\LocalMachine\Root | Where-Object {$_.NotAfter -lt (Get-Date).AddDays(30)} | Select-Object NotAfter, Subject
3. Проверка подлинности сертификатов
Используйте утилиту Sigcheck от Sysinternals для сравнения локальных сертификатов с актуальным списком Microsoft (файл authrootstl.cab).
Экспорт и импорт сертификатов
1. Экспорт сертификата
– В оснастке Сертификаты щёлкните правой кнопкой по сертификату -> Все задачи -> Экспорт.
– Сохраните файл в формате .CER.
2. Импорт сертификата
– На целевом компьютере выберите Все задачи -> Импорт.
– Укажите путь к файлу .CER и выберите хранилище Доверенные корневые центры сертификации.
Включение/отключение автоматического обновления
Автоматическое обновление корневых сертификатов включено по умолчанию. Его можно настроить через GPO или реестр.
1. Настройка через GPO
– Откройте gpedit.msc или редактор групповых политик.
– Перейдите в Конфигурация компьютера -> Административные шаблоны -> Система -> Управление связью через Интернет -> Параметры связи через Интернет.
– Найдите параметр Отключить автоматическое обновление корневых сертификатов.
– Установите Не настроено или Отключено для включения обновлений.
2. Настройка через реестр
Проверьте параметр:
Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\SystemCertificates\AuthRoot' -Name DisableRootAutoUpdate
Если DisableRootAutoUpdate = 1, обновление отключено.
Включите его:
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\SystemCertificates\AuthRoot' -Name DisableRootAutoUpdate -Value 0
Ручное обновление корневых сертификатов
Для изолированных систем используйте утилиту certutil или файл authrootstl.cab.
Метод 1: Использование certutil
1. Генерация SST-файла
На компьютере с интернетом выполните:
certutil.exe -generateSSTFromWU C:\PS\roots.sst
Файл roots.sst содержит актуальный список сертификатов.
2. Импорт сертификатов
Перенесите roots.sst на целевой компьютер и импортируйте:
$sstStore = Get-ChildItem -Path C:\PS\roots.sst
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
3. Проверка результата
Откройте certmgr.msc и убедитесь, что сертификаты добавлены в Доверенные корневые центры сертификации.
Метод 2: Использование authrootstl.cab
1. Загрузка файла
Скачайте файл authrootstl.cab с сайта Microsoft.
2. Извлечение STL-файла
Распакуйте authrootstl.cab с помощью архиватора или Проводника. Получите файл authroot.stl.
3. Установка STL
Импортируйте файл:
certutil -enterprise -f -v -AddStore "Root" "C:\PS\authroot.stl"
Или через certmgr.msc:
– Выберите Доверенные корневые центры сертификации -> Сертификаты -> Все задачи -> Импорт.
– Укажите authroot.stl и хранилище Доверенные корневые центры сертификации.
4. Проверка
В certmgr.msc появится раздел Список доверия сертификатов.
Метод 3: Обновление отозванных сертификатов
1. Загрузка disallowedcertstl.cab
Скачайте файл disallowedcertstl.cab
2. Установка
Распакуйте и импортируйте:
certutil -enterprise -f -v -AddStore disallowed "C:\PS\disallowedcert.stl"
Сертификаты появятся в Недоверенные сертификаты.
Обновление сертификатов через GPO в изолированных сетях
Для доменов Active Directory без интернета настройте обновление через GPO.
1. Метод 1: Распространение SST-файла
– Сгенерируйте roots.sst на компьютере с интернетом:
certutil.exe -generateSSTFromWU \\dc01\SYSVOL\softcomputers.org\rootcert\roots.sst
– Настройте скрипт входа через GPO для импорта:
$sstStore = Get-ChildItem -Path \\dc01\SYSVOL\softcomputers.org\rootcert\roots.sst
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
2. Метод 2: Использование syncWithWU
– Скачайте сертификаты:
certutil -syncWithWU -f \\dc01\SYSVOL\softcomputers.org\rootcert\
– Настройте параметр реестра RootDirURL через GPP:
– Откройте Конфигурация компьютера -> Параметры -> Параметры Windows -> Реестр.
– Создайте параметр:
– Действие: Обновить
– Раздел: HKLM
– Путь: Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate
– Имя: RootDirURL
– Тип: REG_SZ
– Значение: file://\\dc01\SYSVOL\softcomputers.org\rootcert\
3. Проверка GPO
– Убедитесь, что политика Отключить автоматическое обновление корневых сертификатов не включена.
– После применения GPO проверьте хранилище в certmgr.msc.
Обновление сертификатов в Windows 7
В Windows 7 без обновлённых сертификатов могут не работать современные программы, например, .NET Framework 4.8 или Visual Studio, с ошибкой installer manifest failed signature validation.
1. Установка обновления
Скачайте и установите обновление KB2813430 для Windows 7.
2. Генерация и импорт SST
– Сгенерируйте roots.sst на другом компьютере:
certutil.exe -generateSSTFromWU C:\PS\roots.sst
– Импортируйте через certmgr.msc:
– Доверенные корневые центры сертификации -> Все задачи -> Импорт.
– Выберите roots.sst (тип файла: Microsoft Serialized Certificate Store (*.sst)).
Обновление сертификатов в Windows XP
Для Windows XP использовалась утилита rootsupd.exe (обновление KB931125). Однако её поддержка прекращена в 2013 году, и она не содержит актуальных сертификатов.
1. Загрузка утилиты
Скачайте rootsupd.exe с сайта Kaspersky
2. Извлечение содержимого
Распакуйте:
rootsupd.exe /c /t:C:\PS\rootsupd
Получите файлы authroots.sst, delroots.sst и другие.
3. Установка сертификатов
Используйте updroots.exe:
updroots.exe authroots.sst
Удалите отозванные сертификаты:
updroots.exe -d delroots.sst
Рекомендации
– Регулярно проверяйте хранилище сертификатов на наличие поддельных записей с помощью Sigcheck.
– В изолированных сетях используйте GPO для централизованного обновления.
– Не импортируйте все сертификаты, если они не требуются, чтобы минимизировать риски.
– Для Windows XP используйте rootsupd.exe только как временное решение из-за устаревших данных.
– Создавайте резервные копии хранилища сертификатов перед изменениями.
Эти методы позволяют обновить корневые сертификаты в Windows, обеспечивая безопасность SSL-соединений и работу подписанных приложений даже в изолированных средах.