SSL expiration alert — это уведомление о приближающемся истечении срока действия SSL/TLS сертификата сайта. Tracker.ru проверяет дату истечения сертификата при каждой проверке доступности URL и заранее предупреждает, чтобы вы успели обновить сертификат и не получили падение трафика на просроченном HTTPS.
Истёкший SSL-сертификат — самый частый источник «мы ничего не меняли, а сайт перестал открываться» в продакшене. Браузер показывает грозный red-screen NET::ERR_CERT_DATE_INVALID, поисковики деиндексируют HTTPS-версию, мобильные приложения с pinned-сертификатом отваливаются. Алерт «за 30 дней» даёт спокойное окно на ручное продление, «за 7 дней» — это уже последний звонок, когда обновлять надо немедленно.
Как работает
При каждой проверке URL Tracker.ru подключается к серверу по HTTPS, валидирует цепочку сертификатов и читает поле notAfter у leaf-сертификата (это и есть дата истечения). Дата сохраняется в нашей БД (urls.ssl_expired_at). Когда оставшееся количество дней days_left пересекает один из порогов — мы публикуем событие ssl.expiring в шину уведомлений, и оно расходится по выбранным каналам (Telegram, MAX, Email, Webhook).
Логика триггеров:
- Если
days_leftопускается до 30 дней — отправляется первый алерт. - Если
days_leftопускается до 14 дней — отправляется второй алерт. - Если
days_leftопускается до 7 дней — отправляется третий алерт. - Каждый порог триггерит алерт только один раз для текущего сертификата. Если 30-day алерт уже был отправлен — пересечение того же порога повторно не сработает.
- При обновлении сертификата (новая дата
notAfterбольше старой) состояние сбрасывается — следующий цикл алертов начнётся с 30 дней до новой даты истечения.
Каналы доставки
Алерт идёт по тем же каналам, что вы настроили для URL в профиле уведомлений:
- Telegram — мгновенное сообщение в личку или в группу через нашего бота.
- MAX-мессенджер — для команд, которые сидят в MAX вместо Telegram.
- Email — HTML и текстовое представление, тема
[Tracker.ru] SSL skoro istechet — example.com. - Webhook — HTTP POST с JSON-телом и HMAC-SHA256 подписью, событие
ssl.expiring(см. /docs/notifications/webhooks с описанием payload).
Каналы можно включать и выключать индивидуально для каждого URL — например, гонять обычные алерты доступности в Telegram, а SSL-предупреждения дублировать ещё и в Email, чтобы не пропустить в шуме.
Пример сообщения в Telegram
🔒 SSL скоро истечёт: https://example.com
Осталось дней: 14
Истекает: 2026-05-16 10:30:00 (UTC+3)
Не забудьте обновить сертификат
При обновлении (новый сертификат с более поздней датой):
🔒✅ SSL обновлён: https://example.com
Новая дата истечения: 2027-05-16 10:30:00 (UTC+3)
Anti-flap и дедупликация
Между однотипными SSL-уведомлениями для одного URL включена защита от спама — повторное сообщение о том же сертификате на том же пороге не уйдёт раньше, чем через 24 часа. Это защищает от ситуаций, когда несколько воркеров одновременно проверили URL и каждый попытался триггернуть один и тот же алерт.
Если URL находится в maintenance window, expiring-алерты подавляются — вы не получите бесполезное «у вас SSL истекает» во время плановой остановки. После выхода из maintenance цикл проверок и алертов возобновляется.
«Renewed»-уведомление приходит даже в maintenance — это успешное событие, которое не мешает плановым работам и подтверждает, что обновление сертификата прошло без проблем.
Как отключить
В настройках URL (/my/urls/{id}) есть переключатель «SSL alerts». Если выключить — Tracker.ru перестанет слать SSL expiring/renewed-уведомления для этого URL. Сама проверка SSL продолжит работать (дата notAfter будет обновляться в БД и видна в карточке URL), просто без уведомлений.
Это удобно, если SSL-управление полностью автоматизировано через Let's Encrypt + cron, и алерты вам только мешают.
Сравнение с фокусными SSL-сервисами
Tracker.ru — это полноценный мониторинг доступности с SSL-проверкой как одной из метрик, а не отдельный «SSL monitoring only» сервис. Если выбираете между ним и фокусными SSL-сервисами:
- rechecker.ru — российский SSL-monitor с Telegram-алертами, фокус только на сертификатах. Без проверок доступности, без heartbeat, без status-страниц.
- ssldetect.com / certimon.com — англоязычные SaaS, фокус на SSL/TLS-аудите (chain validation, протоколы, ciphers). Дороже за счёт глубины анализа, но без uptime-мониторинга.
Tracker.ru подойдёт, если вам нужен SSL expiring-алерт в комплекте с обычным uptime-мониторингом, статус-страницами и heartbeat — без необходимости плодить подписки на 4 разных сервиса.
Troubleshooting
Алерт не пришёл, хотя сертификат скоро истекает. Проверьте:
- Включены ли SSL-алерты в настройках URL (
/my/urls/{id}→ SSL alerts). - Настроен ли хотя бы один канал уведомлений (Telegram, MAX, Email или Webhook). Если все каналы отключены — алерт не уйдёт.
- URL не находится в maintenance window — expiring-уведомления подавляются на время плановых работ.
- Сертификат действительно валиден и Tracker.ru может его прочитать. Если URL отдаёт ошибку SSL handshake (например, expired CA или wrong hostname) — алерт не будет триггернут, потому что мы не сможем определить дату истечения. Проверьте поле
ssl_errorв карточке URL.
Алерт пришёл слишком поздно — сертификат истёк через 5 дней. Возможно, URL только что добавлен и первая проверка SSL зафиксировала уже малое количество дней. В этом случае все три порога (30/14/7) могут не сработать (потому что мы пропустили момент пересечения 30-day и 14-day). Решение: для свежедобавленных URL Tracker.ru шлёт алерт сразу, если days_left уже ≤ 30 при первой успешной SSL-проверке.
Получил два алерта подряд за 7 дней. Это не должно происходить — дедуп per-threshold должен подавить второй. Если повторяется регулярно, напишите в support@tracker.ru с url_id и таймстампами — посмотрим логи статус-воркера.
Связанные
- /docs/notifications/telegram — настройка Telegram-уведомлений.
- /docs/notifications/email — email-уведомления.
- /docs/notifications/webhooks — Webhook с HMAC-SHA256, описание payload
ssl.expiringиssl.renewed. - /docs/notifications/max — уведомления в MAX-мессенджере.