Skip to content
← Все статьи

Просроченный SSL-сертификат: как исправить ошибку NET::ERR_CERT_DATE_INVALID

Просроченный SSL-сертификат: как исправить ошибку NET::ERR_CERT_DATE_INVALID

Просроченный проверку SSL — одна из самых частых и болезненных причин недоступности сайта: браузер показывает красный экран «Ваше подключение не защищено» (NET::ERR_CERT_DATE_INVALID), и пользователи уходят. Обычно это происходит в нерабочее время и обнаруживается только через часы. В этой статье разберём, как за 10 минут диагностировать проблему, выпустить новый сертификат и настроить мониторинг сайтов, чтобы это не повторилось.

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

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

openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null \
    | openssl x509 -noout -dates
# notBefore=Jan  1 00:00:00 2025 GMT
# notAfter=Apr  1 00:00:00 2025 GMT

Если notAfter уже в прошлом — сертификат действительно просрочен. Альтернативно можно воспользоваться бесплатным SSL Checker от enterno.io: он покажет срок действия, цепочку и возможные проблемы в одном отчёте. Если срок ещё не истёк, а ошибка сохраняется, проверьте системное время на клиенте и посмотрите, не подставляет ли сервер старый сертификат из кеша Nginx или CDN.

Что происходит в браузере: коды ошибок и поведение

Разные браузеры показывают просроченный сертификат по-разному, но суть одна: TLS-рукопожатие завершается предупреждением, и пользователь либо видит кнопку «Продолжить (небезопасно)», либо вообще теряет возможность зайти (например, при включённом HSTS). Типичные коды ошибок:

Важный нюанс: если включён HSTS с preload, пользователь вообще не сможет пройти на сайт — это сделано специально, чтобы защитить от MITM. Подробнее о настройке HSTS мы писали в статье «HSTS и preload-лист: полное руководство».

Быстрое решение: выпуск нового сертификата через Let's Encrypt

Для большинства сайтов лучшее решение — бесплатный сертификат Let's Encrypt с автоматическим обновлением. Если у вас уже установлен certbot, выпуск занимает 30 секунд:

# Остановить nginx (если используется standalone-режим)
sudo systemctl stop nginx

# Выпустить новый сертификат
sudo certbot certonly --standalone -d example.com -d www.example.com

# Либо без остановки через webroot
sudo certbot certonly --webroot -w /var/www/html -d example.com

# Запустить nginx
sudo systemctl start nginx

После успешного выпуска сертификат будет лежать в /etc/letsencrypt/live/example.com/. Убедитесь, что nginx указывает на правильные пути:

ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Полный пошаговый гайд по настройке Let's Encrypt — в статье «Бесплатный SSL через Let's Encrypt: установка certbot».

Если сертификат коммерческий и нужно продлить срочно

Для платных сертификатов (DigiCert, Sectigo, GlobalSign) алгоритм другой: зайдите в панель CA, найдите истёкший сертификат и запустите процедуру renewal. Обычно нужно сгенерировать новый CSR и пройти валидацию (DNS, email или HTTP). После получения архива распакуйте его и замените fullchain.pem и ключ на сервере. Не забудьте перезагрузить веб-сервер:

sudo nginx -t && sudo systemctl reload nginx

Если срочно нужно поднять сайт и нет возможности пройти валидацию CA за разумное время, временно выпустите Let's Encrypt — его валидация занимает минуты, а потом спокойно вернётесь к коммерческому сертификату.

Как не допустить повторения: мониторинг срока действия

Главная причина просрочки — забытый ручной renewal. Решений три:

  1. Автообновление certbot: cron-задача 0 */12 * * * certbot renew --quiet обновит сертификат за 30 дней до истечения.
  2. Внешний мониторинг: сервисы типа Enterno.io Monitors проверяют срок действия каждые 5 минут и присылают алерт в Telegram/Email/Slack за 14, 7 и 3 дня до истечения.
  3. Скрипт на сервере: простой bash, который парсит openssl x509 и отправляет уведомление при < 14 дней до истечения.

Рекомендуем комбинацию: автообновление + внешний мониторинг. Cron может молча сломаться (закончилось место, упал DNS), а внешний монитор это сразу заметит.

Дополнительные проверки после перевыпуска

После установки нового сертификата проверьте:

Часто задаваемые вопросы

Можно ли продолжать пользоваться сайтом с просроченным сертификатом?

Технически да — пользователь может нажать «Продолжить небезопасно». Практически нет: Google пессимизирует такие сайты в поиске, Chrome показывает полностраничное предупреждение, а при включённом HSTS обход вообще невозможен.

Сертификат истёк, но новый сайт грузится быстро — почему?

Скорее всего кешируется старый сертификат — в браузере, на CDN (Cloudflare, Fastly) или в промежуточном прокси. Очистите кеш CDN и проверьте через openssl s_client с вашего сервера.

Сколько действует сертификат Let's Encrypt?

90 дней. Certbot автоматически обновляет его за 30 дней до истечения, если крон настроен. С 2024 года CA/Browser Forum рассматривает сокращение максимального срока до 47 дней — автоматизация станет обязательной.

Что делать, если сертификат отозван, а не просрочен?

Ошибка будет другая: NET::ERR_CERT_REVOKED. Отзыв обычно связан со скомпрометированным ключом — в этом случае обязательно сгенерируйте новый ключ и новый CSR, старый ключ использовать нельзя.

Заключение

Просроченный SSL — проблема, которая решается за 10 минут, если есть certbot, и за 2 часа, если нужно проходить валидацию коммерческого CA. Главное — не допускать повторения: настройте автообновление и подключите внешний мониторинг. SSL Checker от enterno.io покажет срок действия, целостность цепочки и оценку конфигурации за 15 секунд — проверьте свой сайт прямо сейчас, а Monitors автоматически предупредит за 14 дней до следующего истечения.

Спецификация TLS 1.2 — RFC 5246, TLS 1.3 — RFC 8446. Аудит сертификата онлайн — SSL Labs и Mozilla Observatory. Документация Let's Encrypt — letsencrypt.org/docs.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: SSL
SSL
Self-signed certificate: когда использовать и как избежать предупреждений
15.04.2026 · 9 просм.
SSL
SSL Handshake Failed: причины ошибки и пошаговая диагностика
15.04.2026 · 12 просм.
SSL
Слабые cipher suites: как найти и отключить небезопасные шифры TLS
15.04.2026 · 6 просм.
SSL
Неполная цепочка SSL-сертификата: как найти и исправить incomplete chain
15.04.2026 · 7 просм.