Коротко. Сначала выясните, у кого ошибка. Если сайт открывается у вас и падает у клиента — почти всегда дело на его стороне: сбитая дата на устройстве, антивирус с проверкой HTTPS, старая Windows или Android. Если ошибка у всех — причин три: истёк срок, домен не совпадает с сертификатом, оборвана цепочка; диагностика занимает 2 минуты на ssllabs.com/ssltest, починка — от 10 минут до часа и в большинстве случаев бесплатна.
Первый шаг: понять, на чьей стороне проблема
Половина потерянного времени уходит на то, что владелец сайта чинит сервер, когда сломан компьютер клиента, — или наоборот. Разделяется это за три минуты.
- Внешняя проверка. Запустите тест на ssllabs.com/ssltest. Сервис смотрит на сайт со стороны, без ваших кэшей и антивирусов. Оценка T или F означает проблему на сервере — дальше читайте отчёт. Оценка A при жалобах клиента означает, что сервер в порядке.
- Другой канал. Откройте сайт с мобильного интернета, а не с офисного Wi-Fi, и в режиме инкогнито. Если там всё хорошо — виноват корпоративный прокси или расширение браузера.
- Точный код ошибки. Попросите клиента прислать скриншот целиком. Внизу страницы ошибки Chrome всегда есть строка вида NET::ERR_CERT_DATE_INVALID — она и есть диагноз.
Коды ошибок и что за ними стоит
| Код | Что произошло | Где чинить |
|---|---|---|
| ERR_CERT_DATE_INVALID | сертификат просрочен либо дата на устройстве сбита | сервер или клиент — смотреть, у всех ли |
| ERR_CERT_COMMON_NAME_INVALID | сертификат выписан на другое имя: нет www, нет поддомена, отдан чужой | сервер, перевыпуск |
| ERR_CERT_AUTHORITY_INVALID, SEC_ERROR_UNKNOWN_ISSUER | цепочка не собирается: нет промежуточного либо издатель неизвестен системе | сервер или клиент |
| ERR_CERT_REVOKED | центр сертификации отозвал сертификат | сервер, срочный перевыпуск |
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | клиент и сервер не договорились о протоколе или шифре | сервер |
| ERR_SSL_PROTOCOL_ERROR | соединение оборвалось: часто сервер отдаёт http на 443 порту или мешает прокси | сервер или сеть |
| ERR_CERT_WEAK_SIGNATURE_ALGORITHM | сертификат подписан устаревшим алгоритмом (SHA-1) | сервер, перевыпуск |
Ошибка у всех: пять типовых причин на сервере
Если внешний тест показывает проблему, причина почти наверняка в этом списке — он покрывает подавляющее большинство случаев.
1. Сертификат истёк, потому что тихо сломалось автопродление. Продление отваливается по трём типовым поводам: каталог .well-known на сайте перехвачен редиректом или правилом WAF, у домена сменился IP или DNS-записи, обновлённый файл лёг на диск, но веб-сервер не перезапустили и держит в памяти старый. Последнее особенно коварно: на диске всё свежее, в браузере просрочено.
2. Залит сертификат без цепочки. Самая частая ручная ошибка — в конфигурацию вписывают cert.pem вместо fullchain.pem. У вас работает (браузер достраивает цепочку сам), у мобильных клиентов, curl и интеграций — нет. Проверяется строкой Chain issues в отчёте SSL Labs.
3. Сертификат не покрывает нужное имя. Выпустили на site.ru, а посетители приходят на www.site.ru. Или wildcard *.site.ru поставили на сам site.ru — он его не покрывает. Или забыли поддомен lk., и личный кабинет перестал открываться.
4. Не тот виртуальный хост. На одном IP живёт несколько сайтов, и при обращении сервер отдаёт сертификат первого попавшегося. Проверяется командой openssl s_client -connect site.ru:443 -servername site.ru: если с ключом -servername всё хорошо, а без него отдаётся чужое имя — проблема в конфигурации либо в старом клиенте, который не умеет SNI.
5. Сертификат живёт на прокси или CDN. Снаружи всё зелёное, а между CDN и вашим сервером — свой сертификат, который никто не продлевал два года. Симптом: ошибки 5xx или предупреждения только на части страниц.
Ошибка у одного посетителя: что ему ответить
Когда внешний тест зелёный, а клиент видит красный экран, диагноз ищется на его устройстве. Готовый ответ для менеджера службы поддержки выглядит так.
- Проверьте дату и время — при сбитых часах любой сертификат «просрочен» или «ещё не действителен». Самая частая причина у одиночных обращений.
- Отключите на минуту проверку HTTPS в антивирусе. Kaspersky, ESET, Avast подменяют сертификат своим, чтобы просматривать трафик; при сбое их корня получается ERR_CERT_AUTHORITY_INVALID. Если после отключения сайт открылся — диагноз подтверждён.
- Корпоративная сеть. В офисах с фильтрацией трафика происходит то же самое, но на уровне шлюза. Лечится только у системного администратора компании.
- Старая операционная система. Windows 7 без обновлений и Android ниже 7.1.1 не знают современных корневых центров. Классический пример — истечение старого кросс-подписанного корня DST Root CA X3 30 сентября 2021 года: тогда разом «сломались» тысячи сайтов на телефонах старше пяти лет, хотя сертификаты на них были в полном порядке.
- Публичный Wi-Fi с окном авторизации перехватывает первое соединение и подставляет свою страницу — браузер честно ругается на подмену.
Отдельная российская история: сертификаты Национального удостоверяющего центра Минцифры. Их корню доверяют Яндекс Браузер и Атом, а Chrome, Firefox и Safari — нет, поэтому на таком сертификате часть посетителей всегда будет видеть ошибку. Для коммерческого сайта это не подходит: ставьте обычный Let’s Encrypt, а НУЦ — только если этого прямо требует регламент.
Порядок починки
- Прогоните ssllabs.com/ssltest и запишите три строки: Not After, Chain issues, Common names.
- Если истёк срок — перевыпустите. В панели хостинга это одна кнопка и 5-10 минут, на VPS: certbot renew, затем обязательный перезапуск веб-сервера.
- Если Chain issues: Incomplete — замените путь к сертификату на файл полной цепочки (fullchain) и перезапустите nginx или Apache. Порядок внутри файла: сначала сертификат сайта, затем промежуточные.
- Если имя не совпадает — перевыпустите сертификат сразу со всеми нужными именами: домен, www, все живые поддомены. Список удобно свериться на crt.sh, там видно, что вы выпускали раньше.
- Если ERR_CERT_REVOKED — сертификат отозван, и это повод разобраться, почему. Перевыпуск обязателен немедленно, но параллельно проверьте, не утёк ли приватный ключ и кто имел доступ к серверу.
- Повторите внешний тест и отдельно проверьте домен с www и без, каждый поддомен и мобильную версию.
Что стоит денег, а что бесплатно
| Работа | Время | Стоимость |
|---|---|---|
| Диагностика через SSL Labs и браузер | 5 минут | 0 ₽ |
| Перевыпуск Let’s Encrypt в панели хостинга | 10 минут | 0 ₽ |
| Починка цепочки на своём сервере | 15-40 минут | 0 ₽ самому, 3 000-6 000 ₽ подрядчику |
| Настройка автопродления и мониторинга с нуля | 1-2 часа | 4 000-9 000 ₽ |
| Разбор ошибки только у части посетителей | 1-3 часа | 5 000-12 000 ₽ |
Дороже всего обходится не починка, а простой: страница с красным предупреждением отпугивает практически всех, реклама продолжает откручиваться, а заявок нет. Именно поэтому мониторинг срока — 15 минут настройки один раз — окупается первым же несостоявшимся падением.
Частые вопросы
Что означает ошибка «Ваше подключение не защищено»?
Это общий заголовок Chrome для любой проблемы с сертификатом, а конкретика — в коде внизу страницы: ERR_CERT_DATE_INVALID означает истёкший срок или сбитую дату на устройстве, ERR_CERT_COMMON_NAME_INVALID — что сертификат выписан на другое имя, ERR_CERT_AUTHORITY_INVALID — что браузер не смог собрать цепочку доверия. Начинать разбор нужно именно с этого кода, а не с заголовка.
Почему сертификат просрочился, если настроено автопродление?
Три типовые причины: запрос на проверку домена не проходит, потому что каталог .well-known перехвачен редиректом или заблокирован защитой сайта; у домена сменились IP или DNS-записи, и проверка уходит на другой сервер; новый файл сертификата лёг на диск, но веб-сервер не перезапустили, и он продолжает отдавать старый из памяти. Последний случай самый обманчивый — на диске сертификат свежий, в браузере просроченный.
Сайт открывается у меня, но у клиента ошибка сертификата. Что делать?
Сначала подтвердите, что сервер в порядке, — прогоните ssllabs.com/ssltest, и если оценка A, проблема на стороне клиента. Попросите его проверить дату и время на устройстве, временно отключить проверку HTTPS в антивирусе и открыть сайт с мобильного интернета вместо офисной сети: эти три шага закрывают большинство одиночных обращений.
Можно ли просто нажать «Всё равно перейти»?
Себе для проверки — можно, посетителям предлагать это нельзя: браузер в этот момент честно сообщает, что не может подтвердить, с тем ли сервером идёт разговор, и вводить пароль или данные карты на такой странице небезопасно. Для владельца сайта важнее другое — до 90% людей на этом экране просто уходят, поэтому предупреждение стоит считать полноценным простоем и чинить в тот же час.
Сколько стоит исправить ошибку SSL-сертификата?
В большинстве случаев ноль: перевыпуск бесплатного сертификата в панели хостинга — это одна кнопка и 10 минут. Если сайт на своём сервере и нужно чинить цепочку, настраивать автопродление и мониторинг, работа подрядчика обойдётся в 3 000-9 000 ₽ разово; отдельно оценивают только редкие случаи, когда ошибка воспроизводится не у всех и её приходится ловить.
Если разбираться самому некогда, а сайт приносит заявки, отдайте эту зону на поддержку сайтов: продление, мониторинг срока и разбор жалоб «у меня не открывается» входят в абонемент и не отнимают ваше время. Подключаемся и разово — когда нужно погасить аварию сегодня и настроить всё так, чтобы она не повторилась.