Ошибка SSL может появляться из-за неверной даты на устройстве, неполной цепочки сертификатов, настроек HSTS или проблем на стороне CDN.
Как быстро определить причину появления ошибки безопасности SSL
openssl s_client или онлайн-сервис SSL Labs.
Предварительная проверка
Для начала проверьте, что проблема именно в SSL, а не в чем-то другом:
- открывается ли сайт по адресу
http://(безs); - настроено ли перенаправление с HTTP на HTTPS;
- для какого домена выпущен сертификат — если сертификат на
example.com, а вы заходите черезshop.example.com, ошибка ожидаема.
Если с этим всё в порядке, переходите к диагностике.
Если ошибка только на вашем устройстве
Шаг 1. Проверьте системные дату и время
Браузер сверяет срок действия сертификата с системными часами. Если дата сбита, даже валидный сертификат будет восприниматься как просроченный.
Установите верную дату и включите синхронизацию с сервером времени в настройках системы.
Шаг 2. Проверьте антивирус
Некоторые антивирусы с HTTPS-сканированием перехватывают защищенный трафик и подменяют сертификат своим. Если их хранилище доверенных корневых сертификатов устарело, сайт с валидным сертификатом будет заблокирован.
Временно отключите «проверку HTTPS» или «веб-щит» в антивирусе и откройте сайт снова. Если проблема исчезла — обновите антивирус или добавьте сайт в исключения. Не оставляйте защиту отключенной навсегда.
Шаг 3. Сбросьте кеш HSTS в браузере
HSTS (HTTP Strict Transport Security) — механизм, при котором браузер запоминает, что сайт должен открываться только по HTTPS. Если на сервере настройки HSTS менялись (или сертификат был временно невалидным), браузер может блокировать доступ, даже когда проблема уже устранена.
chrome://net-internals/#hsts, в разделе «Delete domain security policies» введите домен и нажмите Delete. Перезапустите браузерedge://net-internals/#hsts, в разделе «Delete domain security policies» введите домен и нажмите Delete. Перезапустите браузерCtrl+Shift+H), найдите сайт, нажмите правой кнопкой → «Забыть об этом сайте». Перезапустите браузерШаг 4. Проверьте настройки и актуальность версии браузера
Проверьте, не включены ли экспериментальные флаги, блокирующие сертификаты, и не устарела ли версия браузера. Попробуйте открыть сайт в другом браузере — если там всё работает, проблема локальная.
Если ошибка у всех посетителей: диагностика на сервере
Шаг 1. Проверьте срок действия сертификата и его соответствие домену
Проверьте даты действия сертификата и список доменов и поддоменов, входящих в покрытие сертификата. Сертификат должен покрывать именно то имя, по которому открывается сайт.
Шаг 2. Проверьте цепочку сертификатов
Браузер доверяет сертификату, только если может построить полную цепочку: SSL-сертификат → промежуточный сертификат → корневой сертификат. Если промежуточный сертификат не установлен на сервере, часть браузеров покажет ошибку, а часть может «дотянуть» цепочку из кеша — отсюда ситуации «у меня работает, у клиента нет» .
Проверить цепочку сертификатов можно двумя способами.
Через сервис SSL Labs. Введите домен и запустите тест. Если в разделе Certificate Chain указано «incomplete» или оценка ниже A — цепочка неполная.
Через командную строку:
openssl s_client -connect example.com:443 -servername example.com -showcerts
В выводе должны быть видны несколько сертификатов (SSL и промежуточные), а в конце — Verify return code: 0 (ok). Если виден только один сертификат или код возврата не 0 — цепочка неполная или неверная.
Для решения проблемы добавьте промежуточный сертификат в настройки веб-сервера или панели управления. Обычно провайдер сертификата присылает файл .ca-bundle — его содержимое добавляется в цепочку после основного сертификата.
Шаг 3. Проверьте HSTS на сервере
Если сервер отдает заголовок Strict-Transport-Security, браузер запоминает это и в дальнейшем не позволяет открыть сайт по HTTP или обойти предупреждение о невалидном сертификате.
Типичные ошибки:
- HSTS включен, но сертификат невалиден или истек — браузер блокирует сайт без возможности перехода;
- не указан
includeSubDomains, хотя поддомены тоже должны работать по HTTPS; - после смены сертификата настройки HSTS остались от старой конфигурации.
Для проверки откройте сайт через curl и посмотрите заголовки:
curl -I https://example.com
Ищите строку Strict-Transport-Security. Если она есть, а сертификат невалиден — это причина блокировки.
Убедитесь, что сертификат валиден и покрывает все домены, для которых действует HSTS. Если нужно временно снять ограничение для диагностики — уменьшите max-age или удалите заголовок на время исправления, затем включите снова.
Шаг 4. Проверьте настройки CDN и прокси
Если сайт работает через CDN (Cloudflare, Azure Front Door и другие), сертификат может устанавливаться на двух уровнях: на стороне CDN (edge) и на стороне исходного сервера. Ошибка возникает, если:
- на CDN загружена не полная цепочка сертификатов;
- CDN отдает по умолчанию свой сертификат вместо сертификата для конкретного домена;
- настройки SSL между CDN и исходным сервером несовместимы.
Для проверки выполните openssl s_client с флагом -servername, чтобы увидеть, какой именно сертификат отдает CDN:
openssl s_client -connect example.com:443 -servername example.com -showcerts
Если в выводе сертификат с другим доменом (например, *.azureedge.net) — CDN не применил ваш сертификат. Если цепочка обрывается на SSL-сертификате — загрузите всю цепочку в настройках CDN.
В панели CDN проверьте привязку сертификата к домену. Загрузите полную цепочку сертификатов (SSL-сертификат + промежуточные + корневой, если требуется). Убедитесь, что режим SSL между CDN и исходным сервером соответствует установленному на исходный сервер сертификату.
После исправления цепочки или настроек HSTS/CDN снова запустите сервис SSL Labs — оценка должна быть A или A+.
Частые вопросы
Почему ошибка SSL появляется только на одном устройстве?
Что такое HSTS и как он связан с ошибкой?
Как быстро проверить цепочку сертификатов?
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊