SSL, HTTPS, DNS и домены

Что произойдёт после истечения SSL-сертификата

Что технически происходит после notAfter SSL/TLS-сертификата, почему клиенты перестают доверять соединению, какие сервисы ломаются и как безопасно проверить замену сертификата.

Опубликовано: 26 августа 2026 г.Обновлено: 26 августа 2026 г.
Схема истечения SSL-сертификата: после notAfter клиент перестаёт считать сертификат действительным

После истечения SSL/TLS-сертификата сервер может продолжать слушать порт 443 и даже отправлять тот же сертификат, но клиент, который корректно проверяет срок действия, больше не должен считать его действительным. В результате HTTPS-соединение для обычного пользователя, API-клиента или мониторинга может завершиться ошибкой проверки сертификата.

Критичная дата находится в поле notAfter. После неё проблема относится не к HTTP-коду приложения: TLS-проверка происходит раньше нормального HTTP-обмена.

Что именно истекает

X.509-сертификат содержит период действия:

notBefore ───────────── notAfter
     сертификат действителен

После notAfter:

клиент проверяет сертификат
→ срок действия завершён
→ certificate validation fails
→ нормальный HTTPS request может не дойти до приложения

Временная шкала SSL-сертификата: период действия до notAfter и отказ проверки после истечения

RFC 5280 определяет период validity через notBefore и notAfter.

Что увидит пользователь

Конкретный текст зависит от браузера и платформы, но типичный результат — предупреждение или блокировка соединения из-за недействительного сертификата.

Нельзя рассчитывать на то, что пользователь нажмёт «продолжить». Для API, мобильных приложений и автоматических клиентов такого интерактивного обхода часто вообще нет.

Что произойдёт с API

API-клиент с нормальной TLS verification может завершить запрос до получения HTTP status.

То есть вместо:

HTTP 500

может быть:

TLS certificate verification error

Это важно для диагностики: application log может не содержать ожидаемый HTTP request.

Что произойдёт с webhook и интеграциями

Внешний сервис, который отправляет webhook на ваш HTTPS endpoint, тоже является TLS-клиентом. Если он проверяет сертификат и отклоняет просроченный, webhook не будет доставлен.

То же относится к payment callbacks, API integrations, background jobs, mobile clients и server-to-server requests.

Фактическое поведение конкретного интегратора нужно смотреть в его документации.

CDN может скрыть проблему origin-сертификата

Архитектура:

пользователь
  ↓ TLS №1
CDN
  ↓ TLS №2
origin

Сертификат на edge и сертификат origin — разные объекты и могут иметь разные даты notAfter.

Схема двух TLS-соединений через CDN: публичный сертификат edge и отдельный сертификат origin

Возможны два сценария:

  1. edge-сертификат истёк — проблема видна пользователям напрямую;
  2. origin-сертификат истёк — пользовательский edge-сертификат ещё валиден, но CDN не может установить защищённое соединение с origin.

Во втором случае пользователь может видеть уже HTTP 5xx от CDN, а не прямую browser certificate error.

Шаг 1. Проверьте фактический сертификат endpoint

openssl s_client   -connect example.com:443   -servername example.com   </dev/null

Для вывода дат:

echo | openssl s_client   -connect example.com:443   -servername example.com 2>/dev/null   | openssl x509 -noout -dates

Пример:

notBefore=...
notAfter=...

Шаг 2. Не проверяйте только файл на сервере

На диске может лежать новый certificate, а endpoint продолжает отдавать старый из-за:

  • не выполненного reload;
  • другого proxy;
  • другого load balancer;
  • нескольких backend;
  • CDN;
  • неправильного virtual host.

Проверять нужно сертификат, который реально получает внешний клиент.

Шаг 3. Проверьте hostname и SNI

Один IP может обслуживать несколько доменов. Без правильного SNI сервер может вернуть чужой сертификат.

Поэтому:

openssl s_client -connect 203.0.113.10:443

без -servername не всегда воспроизводит реальный браузерный запрос.

Шаг 4. Проверьте полную цепочку

Даже новый leaf certificate не гарантирует успех, если неверно настроена intermediate chain.

После обновления проверяйте не только дату leaf, но и успешную verification chain для реального endpoint.

Что делать, если сертификат уже истёк

Общий алгоритм:

  1. получить или выпустить действительный сертификат;
  2. установить его в фактическую точку TLS termination;
  3. установить нужную chain;
  4. выполнить безопасный reload/redeploy;
  5. проверить публичный endpoint;
  6. проверить несколько доменов/SNI;
  7. проверить CDN и origin отдельно;
  8. проверить API и критичные URL.

Не отключайте TLS verification у клиентов как постоянное «исправление».

Автоматическое продление не гарантирует автоматическую установку

ACME-клиент может успешно получить новый certificate, но production endpoint продолжит отдавать старый, если:

  • файл лежит не там;
  • сервис не перечитал его;
  • deploy не выполнился;
  • обновился один node из нескольких;
  • CDN управляет отдельным сертификатом.

Поэтому важен внешний контроль фактического endpoint.

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

После замены:

certificate chain → valid
hostname          → совпадает
notAfter          → в будущем
TLS handshake     → успешен
HTTP critical URL → ожидаемый код

Проверка восстановления HTTPS после замены истёкшего сертификата: chain, hostname, notAfter, TLS и HTTP

Повторите проверку несколько раз, если TLS termination распределён между несколькими узлами.

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

Нужны две независимые вещи:

  • автоматическое продление;
  • автоматический внешний контроль срока сертификата.

Одна только задача renewal не доказывает, что пользователям уже выдаётся новый certificate.

UpWatch можно использовать для контроля SSL-сертификата публичного endpoint и предупреждения до истечения срока.

Типичные ошибки

  • проверять только certificate file на сервере;
  • забывать SNI;
  • обновить leaf без chain;
  • считать успешный ACME renewal доказательством production update;
  • использовать curl -k как решение;
  • проверять только CDN или только origin;
  • ждать последнего дня перед renewal.

Практический чек-лист

  1. Получить фактический certificate endpoint.
  2. Проверить notAfter.
  3. Проверить hostname.
  4. Проверить chain.
  5. Определить TLS termination.
  6. Проверить CDN и origin отдельно.
  7. Установить новый certificate.
  8. Выполнить reload/redeploy.
  9. Повторно проверить внешний endpoint.
  10. Проверить API и критичные URL.
  11. Настроить предупреждение заранее.
  12. Контролировать именно публично выдаваемый сертификат.

Источники и спецификации

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

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

Сам процесс сервера может продолжать работать и слушать 443, но клиенты с корректной TLS verification будут считать сертификат недействительным, поэтому нормальный HTTPS-доступ нарушится.

Будет ли HTTP-код 500 после истечения сертификата?

Не обязательно. TLS verification происходит до обычного HTTP-обмена, поэтому клиент может завершить соединение с TLS-ошибкой и вообще не получить HTTP status.

Почему после успешного продления сайт всё ещё отдаёт старый сертификат?

Новый файл мог не быть установлен в фактическую точку TLS termination, сервис мог не перечитать конфигурацию, либо часть узлов/CDN продолжает использовать старый certificate.

Можно ли решить проблему через curl -k?

Нет. -k отключает проверку сертификата только у конкретного клиента и скрывает проблему, а не исправляет HTTPS для пользователей.

Что важнее проверять: файл сертификата или публичный endpoint?

Публичный endpoint. Именно его сертификат видят реальные клиенты; локальный файл может не совпадать с фактически выдаваемым сертификатом.

Проверка SSL-сертификата сайта: доменное имя, цепочка доверия и срок действия
SSL, HTTPS, DNS и домены

Как проверить SSL-сертификат сайта

Как проверить сертификат в браузере и через OpenSSL: имя хоста, сроки notBefore/notAfter, цепочку сертификатов, SNI и оставшееся время до истечения.

Читать материал
Схема проверки срока действия SSL-сертификата по полям notBefore и notAfter
SSL, HTTPS, DNS и домены

Как узнать срок действия SSL-сертификата

Как посмотреть даты действия TLS-сертификата в браузере и через OpenSSL, правильно проверить SNI, SAN, цепочку сертификатов и не перепутать сертификат CDN с origin.

Читать материал
Схема полного пути диагностики недоступного сайта от пользователя и DNS до TLS, HTTP, proxy и приложения
Доступность сайтов и uptime

Почему сайт не открывается: полный алгоритм диагностики

Пошаговая диагностика сайта, который не открывается: локальная проблема, DNS, TCP, TLS, HTTP, redirect, CDN, reverse proxy, приложение и критичные URL.

Читать материал
Схема разных сетевых путей к одному сайту, из-за которых он работает у одного пользователя и недоступен у другого
Доступность сайтов и uptime

Сайт работает у меня, но не работает у других: причины

Почему сайт может открываться у владельца и быть недоступным другим пользователям: DNS-кеш, IPv4/IPv6, CDN edge, WAF, маршрутизация, браузерный кеш и географические различия.

Читать материал