Эта ошибка означает, что программа (браузер, почтовый клиент, скрипт, мобильное приложение) не смогла выстроить непрерывную цепочку доверия от сертификата вашего сайта до корневого сертификата, который уже есть в системе. В большинстве случаев проблема не в «сломанном интернете» и не в самом ключе, а в одном из четырёх мест: не установлен промежуточный сертификат, истёк или ещё не начал действовать срок, неверное системное время на устройстве клиента либо неполная/повреждённая цепочка в конфигурации сервера. Ниже — как быстро локализовать причину и что с ней делать.
- Что такое цепочка сертификатов и почему она ломается
- Первый шаг: прочитать точный текст ошибки
- Как проверить цепочку со стороны клиента
- Диагностика со стороны сервера
- Частые серверные причины и их устранение
- Особые сценарии
- Почтовые клиенты и внутренние сервисы
- Скрипты, CI/CD и библиотеки
- Старые устройства и embedded-системы
- Типичные ошибки при устранении
- Порядок действий: краткий алгоритм
- Когда обращаться к специалисту
Что такое цепочка сертификатов и почему она ломается
SSL/TLS-сертификат не проверяется сам по себе. Браузер строит путь: сертификат сайта → промежуточный сертификат удостоверяющего центра → корневой сертификат, зашитый в операционную систему или браузер. Если хотя бы одно звено отсутствует, просрочено или подписано не тем, кем заявлено, проверка завершается ошибкой.
Типичные причины сбоя:
- на сервере установлен только сертификат домена, без промежуточных сертификатов — самая частая ситуация;
- истёк срок действия любого звена цепочки, включая промежуточный сертификат центра;
- сертификат выпущен недавно и его корень ещё не распространён на старые устройства;
- системные часы на компьютере или телефоне клиента показывают неверное время;
- сертификат самоподписанный или выдан центром, которого нет в хранилище доверия;
- цепочка собрана в неправильном порядке при ручной установке;
- корневые сертификаты в системе устарели — актуально для старых Windows, Android и встраиваемых устройств.
Первый шаг: прочитать точный текст ошибки
Общая формулировка «не удалось проверить цепочку» малоинформативна. Почти всегда рядом есть код или уточнение, которое сразу указывает направление поиска:
| Уточнение в сообщении | Наиболее вероятная причина | Куда смотреть |
|---|---|---|
| «unable to get local issuer certificate» / «издатель не найден» | Промежуточный сертификат не отдан сервером либо нет корня в хранилище | Конфигурация веб-сервера; состав цепочки |
| «certificate has expired» / «истёк» | Просрочен сертификат сайта или промежуточное звено | Срок действия всех звеньев |
| «not yet valid» / «ещё не действует» | Сертификат выпущен только что или сбиты часы | Дата начала действия; время на устройстве |
| «self-signed certificate» | Самоподписанный сертификат вместо сертификата от публичного центра | Тип сертификата; способ выпуска |
| «hostname mismatch» / имя не совпадает | Сертификат выдан другому домену, нет нужного SAN | Список доменов в сертификате |
| «revoked» / отозван | Центр отозвал сертификат или проверка отзыва недоступна | Статус отзыва; доступность OCSP/CRL |
Если точного кода нет, откройте сайт в браузере и посмотрите детали предупреждения: там обычно указано конкретное звено, вызвавшее сомнение.
Как проверить цепочку со стороны клиента
Начните с простых действий, которые доступны любому пользователю и отсекают половину причин:
- Проверьте системное время и часовой пояс. Расхождение даже в несколько часов ломает проверку сроков. Особенно часто это встречается после замены батарейки BIOS на старых ПК и на устройствах с разряженной батареей.
- Обновите операционную систему и браузер. Устаревшие хранилища корневых сертификатов не знают о новых центрах сертификации.
- Откройте проблемный сайт с другого устройства и другой сети (например, с телефона через мобильный интернет). Если ошибка только на одном устройстве — проблема локальная. Если везде — на стороне сервера.
- В браузере откройте сведения о сертификате (значок замка → сертификат) и посмотрите вкладку пути сертификации: видно, сколько звеньев дошло до корня и где цепочка обрывается.
Если ошибка возникает в корпоративной сети, добавьте к списку проверку прокси-сервера и антивируса с функцией фильтрации HTTPS: они подменяют сертификаты собственными, и без установленного корпоративного корневого сертификата проверка закономерно падает.
Диагностика со стороны сервера
Если ошибка воспроизводится у всех клиентов, причина почти наверняка в том, что сервер отдаёт неполную цепочку. Проверить это можно утилитами командной строки.
Через OpenSSL выполните запрос к порту 443 своего домена и изучите вывод: команда покажет список передаваемых сертификатов, их сроки и порядок. Цепочка должна идти от сертификата домена к промежуточным и заканчиваться корнем (сам корень передавать не обязательно, но промежуточные — обязательно).
Онлайн-проверщики SSL позволяют сделать то же самое в один клик: они показывают, полная ли цепочка, какие звенья отсутствуют, совпадает ли домен и действителен ли срок. Это самый быстрый способ получить наглядную картину без доступа к консоли.
Частые серверные причины и их устранение
- Не установлен промежуточный сертификат. При выпуске сертификата центр выдаёт файл(ы) промежуточных звеньев — их нужно добавить в конфигурацию сервера. В nginx для этого используется директива ssl_trusted_chain/файл полного bundle, в Apache — параметр SSLCertificateChainFile (в новых версиях цепочку можно объединить с основным файлом). Точные названия параметров зависят от версии сервера — сверяйтесь с документацией вашей версии.
- Неправильный порядок сертификатов в bundle. Сначала должен идти сертификат домена, затем промежуточные от ближнего к дальнему. Перепутанный порядок часть клиентов отвергает.
- Истёк промежуточный сертификат. Такое случается при ротации цепочек центрами: сайт работает годами, а потом внезапно «падает», хотя сертификат домена ещё действителен. Решение — обновить bundle из свежей выдачи центра.
- Используется старый файл сертификата после перевыпуска. Проверьте, что в конфигурации указаны именно новые файлы, и перезапустите сервер после изменения.
Особые сценарии
Почтовые клиенты и внутренние сервисы
Если ошибка появляется в почтовой программе при подключении по IMAP/SMTP или во внутренней системе, дело может быть в самоподписанном сертификате корпоративного сервера. Здесь два корректных пути: выпустить сертификат от публичного центра (для внешних доменов это стандарт) либо добавить корпоративный корневой сертификат в хранилище доверия на клиентах. Отключать проверку сертификата в настройках клиента допустимо только как временную меру диагностики — постоянное отключение лишает соединение защиты от перехвата.
Скрипты, CI/CD и библиотеки
В средах разработки ошибка «unable to get local issuer certificate» часто связана не с сайтом, а с окружением: у языка или библиотеки своё хранилище сертификатов, и оно пустое или устаревшее. Например, в Node.js можно явно указать путь к системному хранилищу или обновить встроенный набор корней; в Python — убедиться, что установлен пакет с актуальными корневыми сертификатами. За корпоративным прокси также требуется доверие к его корню.
Старые устройства и embedded-системы
Терминалы, телевизоры, IoT-устройства и старые смартфоны могут не знать о современных корневых сертификатах. Если аудитория сервиса включает такие устройства, выбирайте центр сертификации с широкой совместимостью и следите, чтобы цепочка была полной — иногда помогает явная передача всей цепочки, включая перекрёстно подписанные варианты.
Типичные ошибки при устранении
- Отключение проверки сертификатов («ignore SSL errors») вместо исправления цепочки. Проблема маскируется, но защита исчезает.
- Ручная установка чужих корневых сертификатов, найденных в интернете, «чтобы заработало». Это прямой путь к компрометации доверия системы.
- Перевыпуск сертификата, когда дело было в промежуточном звене или времени клиента, — трата денег и времени без результата.
- Правка конфигурации без перезагрузки/перезапуска сервиса — изменения не применяются, и кажется, что причина в другом.
- Игнорирование предупреждения в браузере на рабочем сайте: посетители уходят, а поисковые системы понижают доверие к ресурсу с невалидным HTTPS.
Порядок действий: краткий алгоритм
- Зафиксируйте точный текст и код ошибки, устройство и сеть, где она возникает.
- Проверьте время и дату на клиенте, обновите систему и браузер.
- Повторите попытку с другого устройства и сети, чтобы разделить проблемы клиента и сервера.
- Если ошибка массовая — проверьте цепочку онлайн-инструментом или через OpenSSL.
- Устраните найденное: дополните цепочку промежуточными сертификатами, обновите истёкшее звено, исправьте порядок в bundle, перезапустите сервер.
- Повторите проверку и убедитесь, что цепочка строится до корня без предупреждений.
Когда обращаться к специалисту
Самостоятельно разумно решать вопросы с временем на устройстве, обновлениями и очевидной неполной цепочкой на своём сайте, если у вас есть доступ к панели управления хостингом. Передавать стоит случаи, когда затронуты продакшн-серверы с несколькими виртуальными хостами, когда ошибка возникает внутри корпоративной инфраструктуры с прокси и собственным PKI, а также когда нужно разбираться с отзывом сертификата или подозрением на подмену трафика — здесь цена ошибки выше, чем стоимость консультации.
Главный принцип: ошибка цепочки почти всегда локализуема. Определите, у кого она возникает (один клиент или все), прочитайте точный код и проверьте три вещи — полноту цепочки на сервере, сроки всех звеньев и корректность времени на клиенте. В подавляющем большинстве случаев причина находится среди этих трёх пунктов, а следующий практический шаг — прогнать домен через онлайн-проверку SSL и посмотреть, какое именно звено отсутствует или просрочено.
Материал носит информационный характер и описывает типовые ситуации. Конкретные команды, параметры конфигурации и требования зависят от версии серверного ПО, удостоверяющего центра и законодательства о защите данных в вашей юрисдикции — сверяйтесь с актуальной документацией, а при работе с критичной инфраструктурой привлекайте профильного специалиста.
