К содержимому
Журнал QIO

8 мин чтения

Как устранить предупреждение браузера о проблеме с HTTPS

Предупреждение «Не защищено» при том, что сайт открывается, связано с SSL-сертификатом, цепочкой доверия или смешанным контентом (когда часть ресурсов грузится по HTTP). Иногда виновато само устройство посетителя. Разбираем, как отличить проблему сайта от проблемы браузера и как увидеть сертификат, который реально отдает сервер.

Как устранить предупреждение браузера о проблеме с HTTPS

Предупреждение «Не защищено» при том, что сайт открывается, связано с SSL-сертификатом, цепочкой доверия или смешанным контентом (когда часть ресурсов грузится по HTTP). Иногда виновато само устройство посетителя. Разбираем, как отличить проблему сайта от проблемы браузера и как увидеть сертификат, который реально отдает сервер.

Отдельно смотрим на автопродление и на настройки, которые нужны после перехода на HTTPS.

Чем предупреждение в браузере отличается от проблемы на сайте

Схема сопоставляет недоверие браузера к сертификату и ошибку на телефоне в Safari с проверками.

Проблема может проявляться только на стороне устройства или браузера посетителя из-за несовпадения доверенных сертификатов. Сайт при этом бывает полностью работоспособен: адрес доступен, сервер отвечает.

В экспертных разборах признаками SSL-проблемы называют сообщение «Ваше подключение не защищено» и сайт, который открывается по HTTP, но не по HTTPS. Без сертификата Chrome и другие браузеры пишут «Не защищено», а на страницах с вводом пароля или карты показывают полноэкранную плашку с угрозой.

Ошибка ERR_CERT_AUTHORITY_INVALID означает, что браузер не смог подтвердить доверие к сертификату. Чаще всего удостоверяющего центра нет в списке доверенных у браузера или операционной системы.

Сначала сравните устройства.

Если у одних посетителей сайт открывается, а у других нет, проверьте:

  • мобильный интернет и офисную сеть;
  • разные браузеры и системы: Windows, macOS, Android, iOS;
  • старые устройства и корпоративный прокси;
  • старый кэш DNS, разные IP за балансировщиком, узлы CDN;
  • локальные дату и время на устройстве.
Что видит посетительЧто проверить
Браузер не доверяет сертификатуПромежуточные сертификаты, выбранный сертификат сайта, время устройства
Ошибка только на телефоне и в SafariПолнота цепочки сертификатов

Как проверить срок сертификата и настроить автопродление

Владелец сервера проверяет сертификат, календарь продления и работу сервиса, занявшего порт.

Начните с сертификата, который сервер отдает посетителю, и только потом переходите к настройке продления.

  1. Смотрите дату окончания у сертификата, который сервер отдает посетителю, а не у файла на диске. Новый файл на сервере еще не значит, что сайт его использует.
  2. На сервере с Certbot выведите список командой sudo certbot certificates и проверьте продление командой sudo certbot renew --dry-run.
  3. Убедитесь, что установлены сертификат, закрытый ключ и нужные промежуточные сертификаты.
  4. На VPS не генерируйте сертификат вручную: Certbot или acme.sh выпустят его, поправят конфиг nginx или Apache и заведут крон на продление.
  5. В панели хостинга автопродление обычно включается само при выпуске, но проверьте галочку. Certbot обновляет сертификат, когда до конца остается меньше 30 дней, поэтому задачу безопасно запускать ежедневно.
  6. Проверьте, запускается ли задача, сохраняется ли возможность подтвердить домен, ставится ли новый сертификат в нужный сайт, подхватывает ли его сервер или прокси и приходят ли уведомления об ошибках.

Истекший срок — самая понятная причина ошибки. Обычно она возникает, когда автопродление настроили один раз и не проверили.

Как это выглядит на практике, показывает случай владельца личного сервера. Он 2 года продлевал сертификаты без сбоев, пока на сервере не появился новый сервис, занявший порт 80. Проверка домена со стороны Let's Encrypt перестала проходить, 3 цикла продления подряд провалились молча, а об истекшем сертификате он узнал из письма пользователя сайта (так описано в одной из экспертных статей).

Выпуск через панель хостинга занимает от нескольких секунд до 10–15 минут, пока проходит проверка домена. Вручную на VPS через Certbot выпуск занимает примерно столько же.

Что делать, если замок не появился после установки

Хромовый замок с приоткрытой дужкой и разорванный хромовый кабель на светлом фоне

Новый выпуск сертификата здесь не поможет. Чаще всего причина в неправильной конфигурации сервера, отсутствии промежуточного сертификата или конфликте между HTTP и HTTPS. Если дело в DNS, цепочке доверия, виртуальном хосте или конфигурации веб-сервера, новый сертификат этого не исправит.

Сертификат продлен, а браузер видит старый. Посмотрите, какой сертификат лежит в каталоге, какой путь указан в конфигурации сайта и выполнялся ли reload веб-сервера.

Продление не сработало. Начните с журнала ACME-клиента (программы, которая запрашивает сертификат у удостоверяющего центра). Затем посмотрите задания cron или systemd timer, убедитесь, что challenge-файл доступен снаружи, и сверьте права на каталог проверки. Причиной бывают также закрытый порт, изменение DNS-записей, превышение лимитов удостоверяющего центра или сбой планировщика.

Смешанный контент. HTML открывается по HTTPS, а часть ресурсов грузится по HTTP. Найдите их во вкладке Console или Network в инструментах разработчика. Затем замените абсолютные ссылки http:// на https://, обновите адрес сайта в настройках CMS и старые ссылки в базе, проверьте шаблоны, плагины и внешние виджеты. На WordPress и Bitrix «битый» замок возможен даже при корректном сертификате.

Потом наведите порядок с адресами:

  • настройте единый постоянный редирект с HTTP на HTTPS и выберите основной вариант домена;
  • обновите canonical, карту сайта и микроразметку;
  • включайте HSTS, только когда HTTPS стабильно работает на основном домене и нужных поддоменах: браузер перестает позволять обходить часть предупреждений;
  • за CDN или прокси проверьте сертификаты на CDN и origin-сервере, режим «Flexible SSL» и заголовок X-Forwarded-Proto.

В Joomla 4, 5 и 6 откройте Система → Общие настройки → Сервер и включите HTTPS. Значение хранится в файле configuration.php, в параметре force_ssl: 0 выключает HTTPS, 1 включает его для панели управления, 2 — для всего сайта.

Защищенное соединение собирается из сертификата, настроек сервера и чистых ссылок

  • Сначала выясните, видят ли предупреждение все посетители или только одно устройство.
  • Затем проверьте, какой сертификат сервер отдает на самом деле и полна ли цепочка.
  • Убедитесь, что автопродление запускается, а новый файл подхватывается.
  • Если замка нет после установки, ищите причину в конфигурации сервера, прокси и CMS, а не в новом выпуске.

Если сайт работает на 1С-Битрикс или Tilda и вам нужно перевести его на HTTPS без смешанного контента, эти задачи можно обсудить с QIO в рамках разработки сайтов.

Вопросы и ответы

Почему после продления сертификата браузер видит старый?

Веб-сервер может продолжать использовать старый файл или не перезагрузиться после продления. Проверьте сертификат в каталоге, путь к нему в конфигурации сайта и выполнялся ли reload веб-сервера.

Что такое смешанный контент?

Это ситуация, когда HTML-страница открывается по HTTPS, а часть ресурсов загружается по HTTP. Так могут загружаться изображения, скрипты, шрифты, стили, внешние виджеты или старые ссылки из шаблона и базы данных CMS.

Где найти ресурсы, которые загружаются по HTTP?

Проверьте вкладки Console или Network в инструментах разработчика браузера. Там обычно отображаются сообщения о ресурсах, загружаемых через HTTP.

Как исправить смешанный контент на сайте?

Замените абсолютные ссылки http:// на https://, а где это уместно — используйте относительные ссылки. Обновите адрес сайта в настройках CMS и старые ссылки в базе данных, проверьте шаблоны, плагины и внешние виджеты, а также убедитесь, что сторонний ресурс поддерживает HTTPS.

Может ли смешанный контент мешать загрузке страницы?

Да. Он вызывает предупреждения браузера и может нарушать загрузку изображений, скриптов, шрифтов или стилей.

Подписаться на журнал

Новые разборы о сайтах, SEO и ИИ выходят в журнале QIO. Подпишитесь в Google, по RSS или в Telegram, чтобы получать их первыми.

Читайте также

Чем можем помочь?
Обсудить проект