Установка SSL-сертификата часто кажется завершённой, как только в вашем собственном браузере появляется замок. Потом клиент со старым телефоном видит предупреждение, платёжный провайдер отклоняет вебхук или сертификат тихо истекает три месяца спустя. Большинство таких проблем вызвано несколькими повторяющимися ошибками. В этом руководстве объясняется, как диагностировать и исправить каждую из них, работает ли ваш сайт на VPS, в панели управления или за CDN.
Неполная промежуточная цепочка
Центр сертификации подписывает ваш сертификат промежуточным сертификатом, который, в свою очередь, подписан доверенным корневым. Сервер должен отдавать ваш сертификат вместе с промежуточным. Если он отдаёт только ваш сертификат, браузеры на компьютерах часто работают, потому что кэшируют или докачивают недостающее звено, а мобильные приложения, API-клиенты и старые устройства выдают ошибку.
Как это диагностировать
Воспользуйтесь онлайн-проверкой SSL или выполните openssl s_client -connect example.com:443 -showcerts и сосчитайте возвращённые сертификаты. При неполной цепочке сертификатов обычно виден только один сертификат или сообщение о том, что издателя не удалось проверить.
Как это исправить
- В Nginx укажите в директиве сертификата файл полной цепочки, а не одиночный сертификат.
- В Apache используйте файл полной цепочки или, для старых версий, задайте директиву файла цепочки.
- В панели управления вставьте пакет CA в отдельное поле промежуточного сертификата.
Несовпадение имени
Ошибка несовпадения имени означает, что имени хоста из адресной строки нет в сертификате. Типичные причины: сертификат выпущен для example.com, но не для www.example.com; после выпуска сертификата добавили новый поддомен; сервер отдаёт сертификат по умолчанию, потому что у виртуального хоста вашего домена нет настройки SSL.
Проверьте альтернативные имена субъекта (Subject Alternative Names) в сертификате и сравните их со всеми используемыми вами именами хостов. Перевыпустите сертификат со всеми именами и убедитесь, что у каждого виртуального хоста HTTPS задано собственное имя сервера, чтобы сервер мог выбрать нужный сертификат с помощью SNI.
Смешанный контент после перехода на HTTPS
Смешанный контент возникает, когда страница HTTPS загружает изображения, скрипты или таблицы стилей по обычному HTTP. Браузеры полностью блокируют небезопасные скрипты и могут показывать сломанный замок из-за изображений. Симптомы — от пропавшего замка до неработающих меню и страниц оформления заказа.
- Откройте консоль разработчика в браузере: в ней перечислены все заблокированные и небезопасные ресурсы.
- Обновите настройки URL сайта в вашей CMS, чтобы новые ссылки создавались с HTTPS.
- Найдите в базе данных жёстко прописанные ссылки http:// в содержимом, настройках темы и виджетах и аккуратно замените их, предварительно сделав резервную копию.
- Проверьте сторонние вставки, шрифты и скрипты отслеживания, которые иногда по-прежнему ссылаются на адреса HTTP.
Заголовок Content-Security-Policy с директивой upgrade-insecure-requests может закрыть оставшиеся случаи, но исправляйте источники, а не полагайтесь только на него.
Сбои автопродления ACME
Бесплатные сертификаты Let's Encrypt действуют 90 дней и зависят от автопродления ACME. Когда продление не срабатывает, никто этого не замечает, пока сайт не покажет предупреждение об истечении срока. Типичные причины:
- Заблокированная проверка HTTP: правило редиректа, межсетевой экран или CDN не пускает сервер проверки к файлу проверки в каталоге /.well-known/acme-challenge/.
- Изменения DNS: домен теперь указывает на другой сервер или CDN, и проверка приходит не туда.
- Сломанное задание продления: задание cron или таймер systemd удалили при обновлении сервера либо клиент отрабатывает, но веб-сервер так и не перезагружается.
- Ограничения по частоте: повторные неудачные попытки во время тестирования могут временно заблокировать выпуск новых сертификатов.
Выполните пробное продление (dry-run), чтобы увидеть точную ошибку, убедитесь, что путь проверки доступен по обычному HTTP, и добавьте хук перезагрузки, чтобы веб-сервер подхватил новый сертификат. Для доменов за CDN проверка через DNS часто надёжнее. Настройте мониторинг срока действия, чтобы получить предупреждение за несколько недель до истечения сертификата.
Циклы редиректа за прокси и CDN
Цикл редиректа часто появляется сразу после включения HTTPS на сайте за обратным прокси, балансировщиком нагрузки или CDN. CDN подключается к вашему серверу по HTTP, сервер перенаправляет на HTTPS, CDN снова пересылает запрос по HTTP, и круг повторяется.
Как устранить цикл
- Настройте CDN на подключение к источнику по HTTPS с действительным сертификатом на сервере вместо гибкого режима (flexible).
- Если прокси завершает TLS, пусть приложение доверяет заголовку X-Forwarded-Proto, чтобы знать, что исходный запрос уже был защищённым.
- Держите редиректы в одном месте. Если один редирект в CDN, другой в веб-сервере и третий в CMS, циклы почти гарантированы.
Краткий чек-лист после установки
- Проверьте внешним инструментом проверки SSL, а не только в своём браузере.
- Проверьте каждое имя хоста, включая www и используемые имена, связанные с почтой.
- Просканируйте ключевые страницы на смешанный контент, особенно оформление заказа и формы обращения.
- Выполните пробное продление и убедитесь, что мониторинг настроен.
- Проверьте, что HTTP перенаправляет на HTTPS за один переход.
Если вы предпочитаете поручить это нам, наша услуга установки и настройки SSL-сертификатов охватывает сертификаты, цепочки, редиректы и настройку продления для сайтов компаний в Лонг-Бич и округе Лос-Анджелес.
Часто задаваемые вопросы об ошибках SSL
Почему сайт работает на компьютере, но на телефонах показывает ошибку SSL?
Это классический признак отсутствующего промежуточного сертификата. Браузеры на компьютерах могут восполнить пробел, а мобильные устройства и приложения — нет. Установите полную цепочку.
Нужно ли переустанавливать сертификат после продления?
Нет, если продление настроено автоматически и правильно. Клиент заменяет файлы, а хук перезагрузки сообщает веб-серверу, что нужно использовать их. Если после продления по-прежнему отдаётся старый сертификат, значит, отсутствует шаг перезагрузки.
Достаточно ли гибкого SSL (flexible) на CDN?
Он шифрует только соединение между посетителем и CDN. Трафик до вашего сервера остаётся незашифрованным, а циклы редиректа возникают часто, поэтому используйте полное шифрование с действительным сертификатом на источнике.


