Срок действия SSL/TLS-сертификата — один из самых простых параметров HTTPS, но именно его истечение регулярно становится причиной внезапных сбоев сайтов, API, почтовых панелей и внутренних сервисов.
Проверить дату окончания сертификата можно через браузер, OpenSSL, curl и внешние сервисы. Но для нормальной эксплуатации важно не только знать дату notAfter, а понимать, какой сертификат реально отдаёт публичный сервер, работает ли автоматическое продление и не обслуживают ли IPv4, IPv6, CDN или reverse proxy разные сертификаты.
В этой статье разберём, как посмотреть срок действия сертификата, что означают поля notBefore и notAfter, как проверить сертификат из терминала и что делать, если обновление уже выполнено, а пользователи всё равно видят старый сертификат.
Какие даты есть у сертификата
У сертификата есть период действия.
Два основных значения:
notBefore— сертификат не должен считаться действующим раньше этой даты;notAfter— после этой даты сертификат считается истёкшим.
Пример:
notBefore=Oct 1 00:00:00 2026 GMT
notAfter=Dec 30 23:59:59 2026 GMT
Что происходит после notAfter
Если срок действия закончился, браузер или другой TLS-клиент обычно не сможет подтвердить действительность сертификата.
В зависимости от клиента пользователь может увидеть:
- предупреждение о небезопасном соединении;
- ошибку сертификата;
- отказ API-клиента;
- сбой webhook;
- ошибку мониторинга;
- невозможность установить TLS-соединение.
Почему нельзя ждать последнего дня
Продлевать сертификат в последний момент рискованно.
Автоматическое обновление может не сработать из-за:
- ошибки DNS;
- недоступного challenge;
- закрытого порта;
- неправильной CAA;
- ошибки ACME-клиента;
- проблем cron или systemd timer;
- лимитов удостоверяющего центра;
- ошибки конфигурации веб-сервера.
Как проверить срок через OpenSSL
openssl s_client \
-connect example.com:443 \
-servername example.com \
</dev/null 2>/dev/null \
| openssl x509 -noout -dates
Пример результата:
notBefore=Oct 1 00:00:00 2026 GMT
notAfter=Dec 30 23:59:59 2026 GMT
Как посмотреть только дату окончания
openssl s_client \
-connect example.com:443 \
-servername example.com \
</dev/null 2>/dev/null \
| openssl x509 -noout -enddate
Результат:
notAfter=Dec 30 23:59:59 2026 GMT
Почему важен параметр -servername
Современные серверы часто обслуживают много HTTPS-сайтов на одном IP.
-servername передаёт SNI и помогает получить сертификат именно нужного домена.
Без него сервер может вернуть сертификат другого virtual host.
Как проверить начало действия
openssl s_client \
-connect example.com:443 \
-servername example.com \
</dev/null 2>/dev/null \
| openssl x509 -noout -startdate
Как проверить сертификат локального файла
Если сертификат уже находится на сервере:
openssl x509 \
-in /path/to/fullchain.pem \
-noout \
-dates
Но это проверяет файл на диске, а не обязательно сертификат, который реально получают посетители.
Почему файл и публичный сертификат могут отличаться
Причин несколько:
- веб-сервер не был перезагружен;
- используется другой virtual host;
- сертификат терминируется на CDN;
- работает reverse proxy;
- балансировщик использует другой файл;
- IPv6 ведёт на другой сервер;
- обновлён не тот сертификат.
Главное правило: проверяйте снаружи
После продления недостаточно увидеть новый файл на сервере.
Нужно проверить сертификат, который реально отдаётся публичному клиенту:
openssl s_client \
-connect example.com:443 \
-servername example.com
Как проверить сертификат через curl
Для обычной проверки:
curl -Iv https://example.com/
В verbose-выводе curl можно увидеть сведения о TLS и сертификате.
Как проверить конкретный сервер
Если DNS ещё не переключён или нужно проверить определённый IP:
curl -I \
--resolve example.com:443:203.0.113.10 \
https://example.com/
Так сохраняется правильное доменное имя и SNI.
Как проверить IPv4 отдельно
curl -4 -Iv https://example.com/
Как проверить IPv6 отдельно
curl -6 -Iv https://example.com/
Это особенно важно после переноса сайта.
Если A и AAAA ведут на разные серверы, сертификаты тоже могут отличаться.
Как проверить срок сертификата через NexIP
SSL-проверка NexIP позволяет посмотреть сертификат снаружи — именно так, как его получает удалённый клиент.
При проверке обращайте внимание на:
- домен;
- issuer;
- дату начала;
- дату окончания;
- SAN;
- цепочку;
- ошибки проверки.
Сколько дней должно оставаться до окончания
Для эксплуатации правильнее не ориентироваться на один универсальный порог, а настроить несколько уровней предупреждения.
Например:
| Осталось | Действие |
|---|---|
| 30 дней | Раннее предупреждение |
| 14 дней | Проверить автоматическое продление |
| 7 дней | Высокий приоритет |
| 3 дня | Критическое предупреждение |
| 1 день | Аварийная ситуация |
Что такое автоматическое продление
Современная инфраструктура обычно не должна зависеть от ручного продления каждого сертификата.
Автоматизация часто строится через ACME.
Клиент заранее запрашивает новый сертификат, подтверждает контроль над доменом, устанавливает его и при необходимости перечитывает конфигурацию сервера.
Что такое ACME challenge
Удостоверяющий центр должен убедиться, что заявитель контролирует домен.
Для этого используются challenge-механизмы.
На практике можно встретить:
- HTTP-01;
- DNS-01;
- TLS-ALPN-01.
HTTP-01
При HTTP-01 удостоверяющий центр проверяет специальный ресурс через HTTP.
Проблемы могут возникнуть, если:
- порт 80 недоступен;
- redirect настроен неправильно;
- challenge перехватывает приложение;
- DNS ведёт не на тот сервер.
DNS-01
При DNS-01 подтверждение выполняется через специальную DNS-запись.
Это особенно удобно для wildcard-сертификатов и автоматизации через DNS API.
Почему автоматическое продление может перестать работать
Даже если оно работало месяцами, инфраструктура могла измениться.
Например:
- сайт переехал;
- сменился DNS;
- удалён старый challenge location;
- истёк API-токен;
- сломался timer;
- изменились права;
- появилась CAA;
- удалён ACME-клиент.
Как проверить systemd timer
На серверах с systemd полезно проверить таймер ACME-клиента.
Например:
systemctl list-timers
И затем статус нужного сервиса.
Как проверить cron
Если продление запускается cron-задачей:
crontab -l
Но наличие строки cron ещё не доказывает, что команда реально выполняется успешно.
Проверяйте журнал продления
После автоматической попытки нужно смотреть результат, а не просто факт запуска задачи.
Особенно важно отличать:
- renewal succeeded;
- renewal skipped;
- challenge failed;
- certificate installed;
- reload failed.
Почему сертификат обновился, а сайт показывает старый
Это одна из самых распространённых проблем.
Веб-сервер не перечитал сертификат
Новый файл существует, но процесс продолжает использовать старый сертификат.
Обновлён не тот virtual host
На сервере может быть несколько конфигураций одного или похожих доменов.
Сертификат находится на reverse proxy
Если TLS завершается на proxy или load balancer, обновление origin-сервера ничего не изменит для пользователя.
Используется CDN
У CDN может быть отдельный edge-сертификат.
IPv6 ведёт на другой сервер
По IPv4 может отдаваться новый сертификат, а по IPv6 — старый.
Проверяйте:
curl -4 -Iv https://example.com/
curl -6 -Iv https://example.com/
Почему браузер всё ещё показывает старый сертификат
Проверьте не только кеш браузера.
Чаще причина находится в инфраструктуре:
- другой IP;
- IPv6;
- CDN;
- балансировщик;
- reverse proxy;
- разные узлы кластера.
Срок сертификата и цепочка — разные проверки
Сертификат может быть действующим по дате, но соединение всё равно окажется недоверенным из-за неправильной цепочки.
И наоборот: цепочка может быть собрана правильно, но leaf-сертификат уже истёк.
Как проверить несколько поддоменов
Не предполагайте, что один сертификат обслуживает всё автоматически.
Проверяйте отдельно:
example.com
www.example.com
api.example.com
mail.example.com
Особенно если они работают на разных серверах.
Wildcard тоже нужно контролировать
Wildcard упрощает обслуживание поддоменов, но у него тот же срок действия.
Если wildcard истечёт, одновременно могут пострадать сразу многие сервисы.
Почему мониторинг сертификатов важен
Истёкший сертификат — проблема, которую гораздо проще предотвратить, чем устранять после жалоб пользователей.
Мониторинг должен:
- регулярно подключаться к публичному endpoint;
- получать фактический сертификат;
- вычислять оставшийся срок;
- предупреждать заранее;
- повторно проверять после продления.
Что стоит мониторить кроме даты
Хорошая проверка HTTPS должна контролировать:
- expiration;
- hostname mismatch;
- issuer;
- цепочку;
- доступность порта 443;
- TLS handshake;
- HTTP-ответ;
- IPv4;
- IPv6.
Правильный порядок проверки после продления
- Проверить новый файл сертификата.
- Проверить конфигурацию веб-сервера.
- Перечитать или перезапустить нужный сервис.
- Проверить публичный сертификат.
- Проверить SAN.
- Проверить notAfter.
- Проверить цепочку.
- Проверить IPv4.
- Проверить IPv6.
- Проверить CDN или proxy, если используются.
- Проверить HTTPS из NexIP.
Как быстро проверить сертификат за одну команду
echo | openssl s_client \
-connect example.com:443 \
-servername example.com 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
Связь с основной статьёй про SSL/TLS
Эта статья посвящена сроку действия и эксплуатации сертификата.
Если нужно понять SAN, SNI, цепочку доверия, wildcard и сам TLS handshake, смотрите «Что такое SSL/TLS-сертификат и как работает HTTPS».
Что важно запомнить
notBeforeзадаёт начало срока действия.notAfterзадаёт окончание.- Проверять нужно публичный сертификат, а не только файл на диске.
- SNI важен для правильной проверки домена.
- IPv4 и IPv6 могут отдавать разные сертификаты.
- CDN и reverse proxy могут иметь отдельный сертификат.
- Автоматическое продление нужно мониторить.
- Успешный renew ещё не гарантирует успешную установку.
- Предупреждать об истечении нужно заранее.
- NexIP должен проверять сертификат с внешней стороны.
FAQ
Где посмотреть дату окончания SSL-сертификата?
Через браузер, OpenSSL или SSL-проверку NexIP.
Что означает notAfter?
Это момент, после которого сертификат перестаёт считаться действующим.
Почему сертификат обновлён, а сайт показывает старый?
Проверьте reload веб-сервера, virtual host, CDN, reverse proxy, балансировщик и IPv6.
Можно ли проверить сертификат до переключения DNS?
Да. Используйте curl --resolve или подключение OpenSSL к конкретному IP с правильным SNI.
Что делать, если до окончания осталось несколько дней?
Не ждите истечения. Проверьте механизм продления, выполните обновление и сразу подтвердите новый сертификат внешней проверкой.
Почему автоматическое продление не сработало?
Проверьте ACME challenge, DNS, порты, CAA, права доступа, cron/systemd timer и журналы клиента.
Нужно ли мониторить сертификат, если есть автообновление?
Да. Мониторинг контролирует конечный результат, тогда как автоматическое продление — только один из процессов внутри инфраструктуры.
Может ли один домен показывать два разных срока действия?
Да, если разные IP, CDN-узлы, балансировщики или IPv4/IPv6 обслуживаются разными сертификатами.
По теме: Что такое OCSP и как проверяется отзыв сертификата.
More practical guides are waiting in the NexIP journal.
NEXIP / TOOLS
Put it into practice
Use NexIP tools to check the parameters covered in this article.
Проверка DNS-записей
Показывает A, AAAA, MX, NS, TXT, CNAME, SOA, CAA и PTR записи.
Open toolПроверка HTTP-заголовков
Показывает ответные HTTP-заголовки и проверяет базовые защитные заголовки.
Open toolПроверка SSL-сертификата
Проверяет TLS-соединение, доверие к сертификату, даты, SAN, цепочку, протокол и совпадение домена.
Open toolNEXIP / DIAGNOSTICS
Verify what matters
Check a website, domain or network settings with real NexIP diagnostics.
Continue reading
Related materials
SSL-сертификаты будут жить всего 47 дней: почему интернет готовят к большим переменам
Срок жизни SSL-сертификатов стремительно сокращается: сначала 200 дней, затем 100, а потом всего 47. Почему крупнейшие участники рынка толкают интернет к такому сценарию, что это изменит для владельцев сайтов и почему ручное продление HTTPS скоро станет пережитком прошлого.
ReadЧто такое SSL-сертификат
Полное руководство по SSL/TLS: как работает HTTPS, сертификаты, SAN, wildcard, цепочка доверия, SNI, OpenSSL и диагностика через NexIP.
ReadПочему браузер пишет «Подключение не защищено»
Сообщение «Подключение не защищено» не обязательно означает, что сайт заражён или вас прямо сейчас взламывают. Оно означает, что браузер не смог нормально подтвердить защищённость HTTPS-соединения. Причин несколько — от банально…
ReadFAQ
Frequently asked questions
Можно ли выполнить эту проверку самостоятельно?
Да. В материале описана безопасная последовательность действий и указаны подходящие инструменты NexIP. Для изменения настроек сервера или DNS могут понадобиться доступы к панели провайдера.
Когда нужно повторить проверку?
Повторите её после внесения изменений и завершения времени обновления. Сохраните исходный результат, чтобы увидеть, что именно изменилось.