Как отслеживать срок действия SSL-сертификата и получать оповещение заранее
Просроченный TLS-сертификат — один из самых легко предотвратимых сбоев. Сервер работает, приложение отвечает, всё «зелёное» — но каждый посетитель упирается в полноэкранное предупреждение браузера о небезопасном соединении. Конверсия мгновенно падает до нуля, и узнаёте вы об этом обычно не от своего мониторинга, а от разозлённого клиента.
Решение скучное и надёжное: отслеживать дату окончания сертификата и оповещать себя с запасом, чтобы успеть спокойно его обновить.
Почему обычная проверка аптайма это пропускает
Простая HTTP- или ping-проверка отвечает на один вопрос: сервер отвечает? Сервер с просроченным сертификатом отвечает «да» — TCP-соединение устанавливается, TLS-рукопожатие формально проходит, и многие наивные проверки считают сайт доступным. А реальные браузеры при этом отказываются открывать страницу.
Именно из-за этого разрыва срок действия сертификата требует отдельной выделенной проверки, а не побочного эффекта обычного монитора аптайма.
Что должна проверять хорошая SSL-проверка
- Дни до окончания — главное число, по которому срабатывает оповещение.
- Валидность цепочки сертификатов — неполная или перепутанная цепочка ломает соединение у части клиентов ещё до истечения срока.
- Совпадение имени хоста — сертификат действительно выпущен для нужного домена, а не дефолтный.
- Издатель / УЦ — помогает заметить неожиданный перевыпуск.
Настройка в PingZen
В PingZen есть отдельный протокол SSL: он подключается к вашему домену, читает живой сертификат и отслеживает дату окончания при каждой проверке.
- Создайте новый монитор и выберите протокол SSL.
- Укажите домен (например,
example.com:443). - Оставьте пороги по умолчанию или измените их: монитор желтеет за 14 дней до истечения и начинает слать оповещения за 7 дней.
- Подключите канал оповещений (Telegram, Slack, Discord, Email или вебхук).
Дальше вы получаете предупреждение задолго до истечения срока и повторное напоминание ближе к дедлайну. Если вы уже мониторите сайт по HTTPS, добавьте SSL-монитор рядом: HTTPS-монитор отвечает на вопрос «сайт работает прямо сейчас», а SSL-монитор — «будет ли TLS работать через месяц». В документации по SSL-сертификатам разобраны пороги и то, с какими сервисами этот монитор работает, а с какими нет.
Разумный запас на обновление
Автоматические УЦ вроде Let’s Encrypt обновляют 90-дневный сертификат, когда до конца остаётся 30 дней, и обновление должно быть автоматическим. Но автоматизация ломается тихо: останавливается cron, ломается хук, отваливается DNS-проверка. Поэтому предупреждение по умолчанию стоит на 14 днях, а не на 30: на 30 днях оповещение приходило бы при каждом здоровом обновлении, а 14 оставшихся дней означают, что обновление действительно не работает уже две недели, и время всё ещё есть.
Сертификаты к тому же становятся короче: Let’s Encrypt уже выдаёт шестидневные, а максимальный срок снизится до 47 дней к 2029 году. Фиксированный критический порог в 7 дней держал бы шестидневный сертификат в красном постоянно, поэтому PingZen ограничивает оба порога сроком жизни самого сертификата: предупреждение не превышает его трети, критический порог — одной шестой. Оставьте автоматизацию и держите монитор как страховку.
Хотите перестать узнавать о просроченных сертификатах от клиентов? Создайте бесплатный SSL-монитор — это около минуты, без карты. Полный список того, что умеет PingZen, смотрите в разделе возможности.