Краткий ответ: Предупреждения браузера о сертификате бывают трёх видов: expired (продлите его), name mismatch (сертификат не покрывает именно этот домен/поддомен) и неполная цепочка (нет промежуточного сертификата — десктопные браузеры могут работать, а телефоны и curl падают). openssl s_client за секунды покажет, какой у вас случай.

Обзор

Ошибка SSL редко означает, что что-то «взломали» — это почти всегда жизненный цикл сертификата: провалилось продление, отдаётся не тот сертификат или цепочка отдаётся неполной. Определите точный сбой, прежде чем трогать конфиги.

Что нужно иметь

  • Точный домен (с/без www — важно) и доступ по SSH к серверу.

Пошаговая инструкция

  1. Проверьте, что сервер реально отдаёт:
    echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates -subject -ext subjectAltName
    Посмотрите notAfter (срок) и что список SAN содержит именно тот хостнейм, который используют посетители.
  2. Просрочен? Продлите и перезагрузите:
    sudo certbot renew
    sudo systemctl reload nginx
    Если продление падает — выполните sudo certbot renew --dry-run и прочитайте ошибку: обычно закрытый порт 80 или изменённый DNS. См. продление Let's Encrypt.
  3. Name mismatch? Выпустите сертификат, покрывающий все нужные имена (apex + www или отсутствующий поддомен) — см. установку бесплатного SSL.
  4. Проблемы с цепочкой? Отдавайте полный файл цепочки (fullchain.pem, а не cert.pem) в конфиге веб-сервера.
  5. После любого фикса снова проверьте снаружи (шаг 1) — браузеры агрессивно кэшируют ошибки сертификатов; тестируйте в приватном окне.

Типичные проблемы

  • Автопродление тихо сломано месяцами: таймер работает, а валидация падает — dry-run это выявляет.
  • Разные сертификаты на IP и домене: SNI — всегда тестируйте с -servername.
  • Работает на десктопе, падает на мобильном: классический признак неполной цепочки.
  • Предупреждения mixed content после фикса SSL: это другая проблема — http:// ресурсы на https-странице.

Когда обращаться в поддержку

Сертификаты на unmanaged-сервере — на стороне клиента, но если порт 443 выглядит заблокированным снаружи, тогда как сервис слушает, или ваша панель со своей SSL-автоматикой ведёт себя странно, — откройте тикет с выводом openssl.

Частые вопросы

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

Это классическая неполная цепочка: десктопы часто кэшируют промежуточные сертификаты, а телефоны и curl — нет. Отдавайте fullchain.pem вместо одного сертификата и перезагрузите веб-сервер.

Сертификат просрочился, хотя продление автоматическое — как так?

Таймер продления может работать, а валидация тихо проваливаться — например, закрыт порт 80 или изменился DNS. Выполните certbot renew --dry-run, чтобы увидеть реальную ошибку, и исправьте её.

Похожие статьи

Нужна помощь? Связаться с поддержкой Cloud2Y →

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)