По умолчанию, все операционные системы семейства Windows автоматически получают и обновляют корневые сертификаты с сайта Microsoft. Компания MSFT в рамках программы корневых сертификатов Microsoft Trusted Root Certificate Program, ведет и публикует в своем онлайн хранилище сертификаты для клиентов и устройств Windows. Если проверяемый сертификат в своей цепочке сертификации относится к корневому CA, который участвует в этой программе, Windows автоматически скачает с узла Microsoft Update и добавит такой корневой сертификат в доверенные на вашем компьютере.
В этой статье попробуем разобраться, как в Windows вручную обновить список корневых сертификатов в TrustedRootCA в изолированных сетях, или компьютерах/серверах без прямого подключения к Интернету.
- Управление корневыми сертификатами в Windows 10 и 11
- Включить/отключить автоматическое обновление корневых сертификатов в Windows
- Ручное обновление корневых сертификатов в Windows 10 и 11
- Список корневых сертификатов в формате STL
- Обновление корневых сертификатов в Windows с помощью GPO в изолированных средах
- Обновление корневых сертификатов в Windows 7
- Утилита rootsupd.exe для обновления сертификатов в Windows XP
Управление корневыми сертификатами в Windows 10 и 11
Как посмотреть список корневых сертификатов на устройстве Windows?
- Чтобы открыть хранилище корневых сертификатов компьютера в Windows /Windows Server, запустите консоль
mmc.exe
; - Нажмите Файл (File) -> Добавить или удалить оснастку (Add/Remove Snap-in), в списке оснасток выберите Сертификаты (Certificates) -> Добавить (Add);
- В диалоговом окне выберите что вы хотите управлять сертификатами учетной записи компьютера (Computer account);
- Далее -> Ok -> Ok;
- Разверните 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
Вы можете вручную перенести файл корневого сертификата с одного компьютера на другой с помощью функцию Экспорта/Импорта.
- Вы можете экспортировать любой сертификат .CER в файл, щелкнув по нему и выбрав “Все задачи” -> “Экспорт”;
- Затем с помощью команды Импорт можно импортировать этот сертификат на другом компьютере.
Включить/отключить автоматическое обновление корневых сертификатов в 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 всегда пытается автоматически обновлять корневые сертификаты.
Если эта политика не настроена, а сертификаты не обновляются автоматически, проверьте не включен ли вручную параметр реестра, отвечающий за эту настройку. Проверьте значение параметра реестра с помощью PowerShell:
Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\SystemCertificates\AuthRoot' -Name 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.
В результате в целевом каталоге появится файл SST, содержащий актуальный список сертификатов. Дважды щелкните по нему для открытия. Данный файл представляет собой контейнер, содержащий доверенные корневые сертификаты.
В указанном каталоге появится файл SST, содержащий актуальный список сертификатов. Данный файл представляет собой контейнер, содержащий доверенные корневые сертификаты. Дважды щелкните по нему.
В открывшейся
mmc
консоли вы можете экспортировать любой из полученных сертификатов. В моем случае, список сертификатов содержал 436 элементов. Естественно, экспортировать сертификаты и устанавливать по одному не рационально.
certutil -syncWithWU
. Полученные таким образом сертификаты можно распространить на клиентов с помощью GPO.Для установки всех сертификатов из 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.
Список корневых сертификатов в формате STL
Есть еще один способ получения списка сертификатов с сайта Microsoft. Для этого нужно скачать файл http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab (обновляется дважды в месяц).С помощью любого архиватора (или проводника Windows) распакуйте содержимое архива authrootstl.cab. Он содержит один файл authroot.stl.
Файл authroot.stl представляет собой контейнер со списком отпечатков (thumbprint) доверенных сертификатов Microsoft в формате Certification Trust List.
Данный файл можно установить в системе с помощью утилиты certutil:
certutil -enterprise -f -v -AddStore "Root" "C:\PS\authroot.stl"
Root "Trusted Root Certification Authorities" CTL 0 added to store. CertUtil: -addstore command completed successfully.
Также вы можете импортировать сертификаты из консоли управления сертификатами (Trust Root CertificationAuthorities –>Certificates -> All Tasks > Import). Укажите путь к вашему STL файлу сертификатами.
После выполнения команды, в консоли управления сертификатами (
certmgr.msc
) в контейнере Trusted Root Certification Authorities (Доверенные корневые сертификаты) появится новый раздел с именем Certificate Trust List (Список доверия сертификатов).
Аналогичным образом можно скачать и установить список с отозванными сертификатами, которые были исключены из программы 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).
Затем с помощью 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\
Осталось назначить эту политику на компьютеры и после обновления настроек GPO на клиенте проверить появление новых корневых сертификатов в хранилище.
Обновление корневых сертификатов в 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).
- Скачайте утилиту rootsupd.exe, перейдя по ссылке (по состоянию на 15.07.2019 ссылка не работает, возможно в Microsoft решили убрать ее из общего доступа. На данный момент вы можете скачать утилиту с сайта kaspersky.com — http://media.kaspersky.com/utilities/CorporateUtilities/rootsupd.zip);
- Для установки корневых сертификатов Windows, достаточно запустить файл rootsupd.exe. Но мы попробуем более внимательно рассмотреть его содержимое, распаковав его с помощью команды:
rootsupd.exe /c /t:C:\PS\rootsupd
- Сертификаты содержатся в SST файлах: authroots.sst, delroot.sst и т.п. Для удаления/установки сертификатов можно воспользоваться командами:
updroots.exe authroots.sst
updroots.exe -d delroots.sst
Но, как вы видите, дата создания этих файлов 4 апреля 2013 (почти за год до окончания официальной поддержки Windows XP). Таким образом, с этого времени утилита не обновлялась и не может быть использована для установки актуальных сертификатов. Однако нам чуть позже понадобится файл updroots.exe.
В этой статье мы рассмотрели несколько способов обновления корневых сертификатов на компьютерах Windows, изолированных от Интернета.
вроде метод через updroots.exe надежнее чем через Install CTL или certutil -addstore
по крайней мере на винде без обновлений из STL файла импортятся далеко не все сертификаты. и если его открыть то там очень много будет сертификатов без имени.
Согласен, на мой взгляд это самый правильный способ. Но устанавливается 300+ сертификатов, жуть
команда «certutil.exe -generateSSTFromWU roots.sst» на Win7 не должна работать? Как лучше на семерке с выключенными обновлениями, но с интернетом обновить сертификаты? Вторым указанным в статье способом?
Добрый день!
Как добавить сертификат в хранилище компьютера? certmgr.msc работает же с сертификатами текущего пользователя. Также как добавить сертификат в хранилище root?
Добрый!
Запустите mmc и добавьте новую оснастку Сертификаты. При добавлении у вас спросят хотоите ли вы управлять сертфикатами пользователя, компьютера или учетной записи службы
большое спасибо за инфу!
Ссылка
не работает. Какая новая ссылка?
Действительно, ссылка не рабочая. Видим в MSFT решили убрать утилиту из паблика. Воможно это и правильно, сертификаты в ней уже сильно устарели.
Для обновления корневых сертфикатов воспользуйтесь одним из следующих методов в статье.
Кому нужна утилита, она есть на странице Антивируса Касперского, проверил — работает : https://support.kaspersky.ru/13727
Доброго времени суток !
Пожалуста напишите статтю как раз и на всегда заблокировать обновления на 10 , которым конца и краю нет …. Вы пишите как обновить сертификаты … Но пожалуста помогите ИЗБАВИТСЯ от обновлений 🙂 и может быть сертификатов 🙂
Это будет совет из серии «плохих». Коль вы отключаете обновления, вы уверены что в дальнейшем регулярно будете качать и ставить их руками?
Файла STL но команда на CTL. Прикол.)
rootsupd.exe /c /t: C:\PS\rootsupd — после t: лишний пробел
Спасибо, исправил
В команде Certutil -syncWithWU -f -f \\dc01\SYSVOL\winitpro.ru\rootcert\ два ключа -f. Это не описка?
Да, ошибка. Нужен один аргумент -f
Это не ошибка — нужно два ключа -f.
Об этом написано у MS:
В противном случае, если на сервере MS какой-то из сертификатов .crt перестанет сущестовать, то при обновлении произойдёт ошибка: «Warning! Encountered the following no longer trusted roots: \.crt. Use «-f -f» options to force the delete of the above «.crt» files. Was «authrootstl.cab» updated? If yes, consider deferring the delete until all clients have been updated.»
Здравствуйте! Спасибо за статью. Помогите, пожалуйста, разобраться. Командой
certutil.exe -generateSSTFromWU roots.sst
скачиваются актуальные корневые сертификаты. Далее их можно импортировать в систему. Но ведь есть отозванные сертификаты и те, которые нужно удалить?! Такие списки как-то можно с помощью утилиты certutil.exe получить, а потом импортировать или удалить из системы? В интернте попались вот такие ссылки на sst-файлы:http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcert.sst
http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authroots.sst
http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/delroots.sst
http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/roots.sst
http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/updroots.sst
Правильно ли будет, если скачать их и с помощью команд указанных в файле rootsupd.inf, идущем в комплекте с программой updroots.exe, интегрировать в систему? Заранее спасибо!
Команды:
updroots.exe authroots.sst
updroots.exe updroots.sst
updroots.exe -l roots.sst
updroots.exe -d delroots.sst
Привет.
У меня Касперский стал блокировать некоторые сайты после 30 мая. Как я понял, что проблема только у меня. В техподдержке сказали, что разберутся, а пока дали ссылку на эту страницу (потому что проблема сертификатами).
Столько вариантов по обновлению сертификатов, что у меня башка лопает. Выбрал пункт «Список корневых сертификатов в формате STL» скачал архив, распаковал. В свойствах увидел пункт «Установить список доверия STL» (на вин 7), вроде что-то установилось, но сайт не грузится. Нужно перезагрузиться или я не правильно сделал?
Ну как бы не факт что дело именно с сертификатами на вашем компе. Вы не задумывались почему это с определенной даты у вас появилась эта проблема? Может все таки дело в каперском? Отключите контроль сертификатов в нем и не мучайтесь.
спасибюо огрмоное!!! переустановил вин7 на старый ноут, не открывались ни сайты ни устанавливались программы. решение из статьи помогло! автор, дай бог тебе здоровья и всех благ, будь счастлив!!! жму руку!
повтор в тексте у вас
> В результате в целевом каталоге появится файл SST, содержащий актуальный список сертификатов. Дважды щелкните по нему для открытия. Данный файл представляет собой контейнер, содержащий доверенные корневые сертификаты.
и потом после скриншота:
> В указанном каталоге появится файл SST, содержащий актуальный список сертификатов. Данный файл представляет собой контейнер, содержащий доверенные корневые сертификаты. Дважды щелкните по нему.
В скачанном файле roots.sst куча просроченных сертификатов, 50+ штук. Почему так?
Ещё вопрос: что делать с просроченными сертификатами и теми, где пишет «Этот сертификат был отозван выдавшим его центром сертификации»? У меня таких в доверенных полно. Это на что-то влияет? Лучше удалить или можно не трогать?
Просроченные можно конечно почистить, если уж хочется заморочитья. Но беды от них не будет.
Отозванные не трогать
Сделал все как описано в статье, но у меня почему-то не 369 сертификатов, а 41. Почему так?
Какая версия и билд Windows?
ошибся, не 358, а 41…
для Win7 заработал способ от XP-шки — скачать с сайта Касперского rootsupd.exe, установить эту утилиту через командную строку, найти в директории куда установилась rootsupd утилиту updroots.exe и скормить также через командную строку файл с сертификатами.
Через certutil.exe не работало — утилита не хотела принимать такой флаг а обновление KB2813430 не получалось скачать.
и всё)))))) статья внезапненько обрывается….
Если команда вернет, что значение ключа DisableRootAutoUpdate=1 , значит на вашем компьютере отключено обновление корневых сертификатов. Чтобы включить его, измените значение параметра на 0.
а как это сделать?
Через политику Turn off Automatic Root Certificates Update = Disabled или поправьте руками в реестре
Добрый день! Спасибо за статью. Обновление сертификатов необходимо для развертывания антивируса в изолированной среде. Пробовал «Обновление корневых сертификатов в Windows с помощью GPO в изолированных средах». В изолированной среде используются ПК с Windows 7. Сертификаты скачал 2 способом: «Certutil -syncWithWU -f \\dc01\SYSVOL\winitpro.ru\rootcert\» и разместил в сети через DFS (456 файлов). Политикой создал на клиентах ключ RootDirURL (убедился в его наличии и правильности задания значения после применения политики). Автоматическое обновление корневых сертификатов в Windows — не настроено. Обновление KB2813430 на ПК с Window 7 установлено (проверено через отчеты в WSUS). Итог развертывания антивируса — отрицательный.
Установка обновленной версии антивируса проходила в 2 этапа. Первый запуск дистрибутива завершается потребностью в перезагрузке для продолжения установки. После перезагрузки и повторном запуске дистрибутива установка антивируса сваливается в ошибку: «… *.cab имеет не верную цифровую подпись.» На целевом клиенте присутствует только 20 сертификатов. Т.е. новые сертификаты, размещенные в DFS на клиенте не установились (на ск я понимаю этого и не должно происходить в моем сценарии).
Но, если на этом же ПК вручную выполнить импортирование коревых сертификатов, полученных через «certutil.exe –generateSSTFromWU roots.sst», то обновление антивируса проходит так же в 2 этапа как и описано выше, но без ошибок. Не подскажете в чем может быть проблема?