Почему клиентские ПК не доверяют корневому сертификату, который присутствует в CCADB (HARICA TLS RSA Root CA 2021) — и что с этим делать
Кратко: сервер получил сертификат, чей корневой CA включён в централизованные списки (CCADB / Microsoft), но на некоторых клиентских машинах (в частности в приложениях типа QGIS) этот корневой сертификат не виден в системном хранилище, из‑за чего проверка TLS завершается ошибкой. Браузеры вроде Firefox/Edge обычно открывают сайт нормально (либо имеют собственный список доверенных корней, либо динамически получают корень через механизмы Windows), а отдельные приложения — нет.
Почему так происходит (простыми словами)
- Наличие CA в списках вроде CCADB / Microsoft означает, что Microsoft признаёт этот CA и может включать его в список доверенных сертификатов, но это не обязательно означает, что корневой сертификат физически уже записан в локальном «Trusted Root» на каждой машине.
- Windows имеет механизм автоматической подгрузки корневых сертификатов «по требованию» (Automatic Root Update). Но он срабатывает только для тех приложений, которые используют системные API валидации (Schannel/Windows certificate validation). Такие приложения при необходимости инициируют загрузку корня с серверов Microsoft и Windows помещает его в хранилище.
- Современный Microsoft Edge (Chromium) и Chrome используют собственные копии списков доверенных корней или встроенные доверенные списки, поэтому их поведение отличается: они могут не использовать Windows Automatic Root Update для HTTPS‑соединений и вместо этого опираются на свой встроенный список либо импортируют из Windows только дополнительные (локальные) корни.
- Некоторые приложения (например, сборки QGIS, использующие OpenSSL/GnuTLS/Botan и самостоятельно выполняющие проверку цепочки) могут читать сертификаты из Windows хранилища, но не использовать Windows API для валидации. В этом случае автоматическая загрузка корня не инициируется и приложение увидит только то, что уже есть в хранилище.
Последствия для пользователей
- Браузеры: чаще всего будут работать (Firefox использует свой store и, по истории, HARICA добавили в Mozilla в 2021; Edge/Chrome могут работать если их встроенный список содержит корень).
- Системные/Schannel‑программы (curl.exe из Windows, PowerShell WebRequest и др.) — могут автоматически подтянуть корневой сертификат при запросе.
- Приложения, которые не используют Windows валидацию (QGIS в некоторых сборках) — будут жаловаться на самоподписанный или неизвестный корень, пока корень не установлен вручную или не добавлен централизованно.
Варианты решения
Ниже — упорядоченный обзор практических вариантов, каким образом можно устранить проблему для конечных пользователей.
Вариант 1 — централизовать доверие (рекомендуется для управляемых сетей)
Если у вас есть центральное управление (GPO / MDM / Intune) — самый надёжный и предсказуемый способ: развернуть корневой сертификат в раздел «Trusted Root Certification Authorities» на всех клиентских устройствах.
Примерный путь в Group Policy (Windows Domain):
- Создать или отредактировать GPO.
- Computer Configuration → Policies → Windows Settings → Security Settings → Public Key Policies → Trusted Root Certification Authorities.
- Импортировать корневой сертификат (файл .cer) и привязать GPO к OU с компьютерами.
Плюсы: контроль, безопасность, работает для всех приложений, включая QGIS. Минусы: требует прав администратора/IT и времени на развёртывание.
Вариант 2 — положиться на Windows Automatic Root Update
Как это работает:
- Если приложение использует Schannel/Windows API для валидации, Windows при необходимости автоматически загрузит корневой сертификат из репозиториев Microsoft (через Windows Update/службы каталогов корней).
- Примеры клиентов, которые это используют: встроенный curl в Windows, Internet Explorer/частично старый Edge, некоторые системные вызовы PowerShell.
Практические шаги для пользователей:
- Убедиться, что Windows обновлён и у него разрешены обновления корней (не отключена служба или GPO, блокирующая автоматическую загрузку корней).
- Для теста можно выполнить:
certutil -urlcache
и/или
curl https://nibis.lbeg.de
— Windows‑встроенный curl использует Schannel и при обращении к сайту может инициировать загрузку корня.
Плюсы: не требует ручной установки сертификата на каждой машине; при удачном сценарии работает автоматически. Минусы: не работает, если приложение не использует Windows валидацию (QGIS), или если политика организации запрещает автообновление корней.
Вариант 3 — попросить пользователей использовать браузер/приложение с готовым хранилищем
- Firefox имеет собственное хранилище сертификатов и, если CA добавлена в Mozilla, сайт откроется корректно.
- Некоторые версии Edge/Chrome включают эту корневую запись в встроенный список, но у Chromium‑производных поведение может отличаться между сборками.
Плюсы: быстрое временное решение для отдельных пользователей. Минусы: неудобно объяснять всем клиентам, не решает проблему приложений вроде QGIS.
Вариант 4 — заставить приложение инициировать авто‑загрузку корня
Если приложение само не запускает Windows проверку, можно попытаться запустить стороннюю утилиту, которая использует Schannel, чтобы инициировать загрузку корня на машине (пример: использовать встроенный curl для обращения к вашему сайту):
curl https://nibis.lbeg.de
После этого Windows может автоматически скачать корень и поместить его в «Trusted Root», и тогда приложение, которое читает этот store, возможно, начнёт доверять цепочке.
Примечание: если QGIS использует своё внутреннее TLS‑валидацию, даже после появления корня в системном store это не поможет — приложение должно использовать системный валидатор или импортировать системные корни в свою логику валидации.
Вариант 5 — непосредственно установить корень вручную (как крайний/временный вариант)
- Пользователь может импортировать корневой сертификат с помощью certmgr.msc (пользователь) или certlm.msc (локальное компьютерное хранилище) и поместить в Trusted Root Certification Authorities.
- Это небезопасно и неудобно для широкого круга клиентов, но работает для отдельных случаев.
Рекомендации и практические проверки
- Проверьте, что сервер корректно отправляет полный набор промежуточных сертификатов (full chain). Неполная цепочка — частая причина проблем с доверием у разных клиентов. Используйте SSL Labs или аналогичный сервис для проверки сервера.
- Проверьте, действительно ли корень присутствует в встроенных списках браузеров: Firefox (about:certificate) и Edge (Settings → Certificate Manager) — в некоторых сборках корень уже включён и сайт работает.
- На клиентской машине можно посмотреть содержимое Trusted Root с помощью certmgr.msc / certlm.msc и увидеть, появился ли HARICA корень.
- Для диагностики автоматической загрузки корней используйте: certutil -urlcache и тесты с curl.exe (Windows build).
- Если большое количество ваших клиентов использует QGIS или другие приложения с собственной валидацией — лучше всего либо развернуть корень централизованно (GPO), либо обратиться к разработчикам приложения, чтобы оно использовало системные API валидации.
Какой вариант лучше выбрать?
- Если вы управляете корпоративной сетью — используйте GPO/MDM для распространения корня. Это наиболее предсказуемо и безопасно.
- Если речь о внешних (публичных) клиентах — оптимально обеспечить, чтобы CA была включена во все основные доверенные хранилища (Mozilla, Microsoft, Apple, Android). Вы уже видите, что HARICA присутствует у Mozilla и в CCADB для Microsoft, но это не гарантирует моментальную появление в локальном store на всех машинах — поэтому как временная мера добавьте инструкции для клиентов по обновлению Windows или использованию браузера, который уже доверяет CA.
- Если большое число пользователей испытывает проблемы в конкретном приложении (QGIS) — попробуйте объяснить пользователям путь с GPO/ручным импортом или добиваться исправления в самом приложении (чтобы оно использовало Windows validation или импортировало системные корни корректно).
Короткий чеклист действий для администратора
- Проверить сервер на полную цепочку сертификатов (SSL Labs).
- Проверить, нет ли GPO, блокирующих автоматическую загрузку корней (Windows Update политик).
- Если вы контролируете клиентов — развернуть корень через GPO/MDM.
- Если нет — дать инструкции клиентам: обновить Windows, запустить встроенный curl или браузер, который доверяет CA, либо временно импортировать корень вручную.
- Для QGIS — проверить, использует ли сборка системную валидацию; при необходимости предложить пользователям конкретную сборку/версию или запросить изменение у разработчиков.
Вывод
Проблема не в том, что CA «не доверена глобально» — HARICA TLS RSA Root CA 2021 присутствует в реестрах типа CCADB и в Mozilla. Причина в механизмах распространения корней на конкретных машинах: Windows загружает нужные корни «по требованию» только для приложений, использующих Windows‑валидацию. Многие приложения (или бездоменные/пользовательские установки) этого не делают, поэтому корень может отсутствовать в локальном хранилище и приводить к ошибкам.
Решение во многом зависит от ситуации: в управляемой среде — развёртывание через GPO/MDM; для внешних клиентов — комбинация: убедиться в корректной цепочке на сервере, по возможности проинструктировать обновить ОС/использовать поддерживаемые браузеры, и, при необходимости, предложить временный ручной импорт. Для приложений вроде QGIS потребуется либо изменение приложения (использование системной валидации), либо централизованное развёртывание корня.