Tracker.ru На главную

Мониторинг SSL-сертификата: алерт об истечении за 30, 14 и 7 дней

Мониторинг SSL-сертификата в Tracker.ru — это автоматическая проверка валидности SSL/TLS цепочки при каждой проверке доступности сайта и уведомление об истечении срока действия за 30, 14 и 7 дней до конца. Алерты идут в Telegram, MAX-мессенджер, на email и через webhook. Без отдельной интеграции, без CSV-выгрузок и ручных календарных напоминаний.

Мониторинг SSL-сертификата в Tracker.ru — это автоматическая проверка валидности SSL/TLS цепочки при каждой проверке доступности сайта и уведомление об истечении срока действия за 30, 14 и 7 дней до конца. Алерты приходят в Telegram, MAX-мессенджер, на email и через webhook — теми же каналами, что и обычные алерты о падении сайта. Без отдельной интеграции, без CSV-выгрузок и без ручных календарных напоминаний: добавили URL — мониторинг SSL включён по умолчанию.

Зачем мониторить SSL-сертификат

Просроченный SSL — самая обидная категория «полу-падений» сайта. Технически сервер работает, страницы открываются по HTTP, но браузер блокирует сайт фуллскрин-предупреждением «Незащищённое соединение, ваши данные могут быть украдены». Конверсия в этот момент схлопывается, а команда узнаёт о проблеме от пользователей в поддержке, а не из системы мониторинга.

Поводов забыть о сроке действия сертификата масса. Часто Let's Encrypt обновляется через cron, который однажды отвалился после миграции сервера, и никто не заметил — обновлений просто нет, а календарной напоминалки за 30 дней до истечения никто не поставил. Иногда сертификат куплен у платного CA, заведён под чужой почтой бывшего сотрудника, и письма об истечении уходят в никуда. Бывает что цепочка собрана неправильно (intermediate-сертификат не подгружается), и часть пользователей видит ошибку, а часть — нет, в зависимости от браузера.

Мониторинг SSL отдельным процессом снимает все эти кейсы: система сама проверяет сертификат при каждом запросе к сайту, сравнивает дату истечения с текущей и шлёт алерт за 30, 14 и 7 дней до конца — независимо от того, кто и когда настраивал auto-renew. Если auto-renew работает корректно — алерт за 30 дней приходит и на следующий день сертификат обновляется, цикл сбрасывается. Если auto-renew сломался — алерт сообщает об этом за 30 дней, у вас есть время выяснить причину и обновить вручную, без аврала.

Что именно проверяет Tracker.ru

При каждой проверке доступности URL (с интервалом от 30 секунд до 1 часа в зависимости от тарифа) Tracker.ru подключается к сайту по HTTPS и анализирует SSL/TLS цепочку:

Срок действия сертификата. Извлекается дата notAfter из сертификата сайта, сравнивается с текущим временем, вычисляется количество оставшихся дней. Если меньше 30, 14 или 7 — триггерится соответствующий алерт.

Валидность цепочки. Проверяется, что цепочка собрана корректно: сертификат сайта подписан промежуточным CA, промежуточный — корневым доверенным CA. Если intermediate-сертификат не подгружается с сервера, цепочка считается сломанной и алерт уходит сразу же — это та самая ситуация, когда часть браузеров видит ошибку SSL, а часть — нет.

Соответствие имени. Проверяется, что сертификат выписан на нужный домен: example.com соответствует example.com или wildcard *.example.com. Если по адресу shop.example.com отдаётся сертификат, выписанный на example.com без wildcard, алерт уходит немедленно — это типичная ошибка после миграции домена.

Свежесть и доверие к CA. Дополнительно фиксируется, не отозван ли сертификат (CRL/OCSP по возможности), не истёк ли он уже фактически и не выдан ли неизвестным CA. Эти проблемы попадают в общий поток алертов о SSL.

Все проверки выполняются как часть обычного uptime-чека — отдельный мониторинг включать не нужно. Если сайт мониторится по HTTPS, SSL мониторится автоматически.

Алерты за 30, 14 и 7 дней до истечения

Tracker.ru шлёт три алерта на разных горизонтах, чтобы у команды было время среагировать без аврала.

За 30 дней. Это «тихий» предупредительный алерт: если auto-renew настроен, на следующий день сертификат обновится и больше алертов не придёт. Если auto-renew не сработал — есть месяц на спокойное расследование. 30 дней — это золотой стандарт уведомлений: достаточно времени, чтобы выяснить причину сбоя auto-renew, переключиться на ручное обновление или сменить CA.

За 14 дней. Если за две недели до истечения сертификат всё ещё не обновился — пора брать процесс на ручной контроль. Алерт срабатывает второй раз, причём в более заметном тоне: «остался ровно 14 дней, проверьте состояние».

За 7 дней. Финальный алерт. Если на этом этапе сертификат не обновлён — ситуация уже критическая, нужно действовать прямо сейчас, выписывать новый сертификат и устанавливать вручную. Алерт за 7 дней дублируется на все настроенные каналы (Telegram + MAX + Email + Webhook), даже если предыдущие два были проигнорированы.

Между алертами действует анти-флап дедупликация: если сертификат не обновился, повторный алерт за тот же сертификат не приходит чаще раза в 24 часа. Один сертификат — одна цепочка алертов 30 → 14 → 7. Если же сертификат обновлён (например, в ответ на алерт за 30 дней), цикл автоматически сбрасывается, и следующая цепочка пойдёт уже от нового notAfter.

Каналы доставки алертов

Алерты SSL ходят теми же каналами, что и обычные уведомления о падении сайта — отдельную интеграцию настраивать не нужно.

Telegram-бот. Личное сообщение от @tracker_ru_bot с указанием домена, оставшихся дней и даты истечения. Можно настроить групповой чат — алерты будут приходить туда, всей команде разом.

MAX-мессенджер. Аналогичные сообщения через MAX (российский мессенджер). Для российских команд, переходящих на отечественные коммуникации, — рабочий канал, не требующий VPN. См. /docs/notifications/max.

Email. HTML-уведомление на адрес, привязанный к аккаунту. Подходит для архива и для интеграции с внутренними системами тикетов через email-pipeline.

Webhook. POST-запрос на ваш endpoint с JSON-payload (event: ssl.expiring, поля domain, days_left, expires_at, monitor_url) и HMAC-SHA256 подписью. Используется для интеграции с PagerDuty, Opsgenie, собственным дежурным ботом или внутренней дашбордой. Подробнее — /docs/notifications/webhooks.

При обновлении сертификата дополнительно отправляется событие ssl.renewed — удобно, чтобы автоматически закрывать инцидент в трекере или фиксировать обновление в логе.

Чем отличается от ручного reminder и от конкурентов

Альтернатив несколько, у каждой свои особенности.

Ручная календарная напоминалка. Самый частый «заменитель» — ставится вручную в Google Calendar или в Notion за месяц до истечения. Минусы: нужно вручную поддерживать список доменов, не учитывает auto-renew (придёт даже если сертификат уже обновился), теряется при смене сотрудников и календарей.

Скрипт + cron на собственном сервере. Свой openssl s_client + grep notAfter | mail. Работает, но требует поддержки: нужно следить, чтобы скрипт не отвалился, настраивать SMTP, вести список доменов в YAML или в БД, дописывать каналы кроме email вручную. Через 6 месяцев скрипт превращается в legacy, который никто не трогает.

Специализированные SSL-мониторы. rechecker.ru, ssldetect.com, certimon.com — узкоспециализированные сервисы только для мониторинга SSL. Хороши тем, что есть отдельные каналы и расширенные проверки (CT-логи, CAA-records). Минус: ещё один отдельный аккаунт, отдельный бот, отдельный pricing — а у вас уже есть мониторинг доступности сайта, и эти системы не связаны.

Tracker.ru — мониторинг доступности + SSL в одном месте. SSL-проверка идёт частью обычного uptime-чека: одна система, один аккаунт, один Telegram-бот, один webhook. Если сайт упал — придёт алерт о падении. Если сертификат скоро истечёт — придёт алерт об истечении. Если упало то и другое одновременно — оба алерта в одном чате, с одинаковой структурой. Сводки и история — в общей дашборде.

Подробное сравнение мониторинга доступности с конкурентами — на странице /compare/uptimerobot и других в разделе /compare.

Как настроить и сколько стоит

Мониторинг SSL включён по умолчанию для каждого URL, который мониторится по HTTPS — отдельно ничего настраивать не нужно. Достаточно добавить URL в /my/urls — и SSL-проверка пойдёт автоматически.

Free (0 ₽). До 5 мониторов, интервал 5 минут. SSL-проверка работает, алерт за 7 дней. Подходит для пет-проектов и pilot-теста сервиса.

Basic (290 ₽/мес). До 20 мониторов, интервал от 60 секунд. SSL-алерты за 30, 14 и 7 дней. Подойдёт для большинства коммерческих сайтов.

Pro (790 ₽/мес). До 100 мониторов, интервал от 30 секунд, расширенные каналы алертов и публичный API. Полная SSL-аналитика и история обновлений.

Подключение каналов алертов — в /my/notifications. Подробнее про тарифы — /pricing.

Включить SSL-мониторинг бесплатно

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

Нужно ли отдельно включать мониторинг SSL?

Нет. Если URL мониторится по HTTPS, SSL-проверка идёт автоматически как часть обычного uptime-чека. Ничего настраивать не нужно — добавили URL в /my/urls, и сертификат проверяется при каждой проверке доступности. Алерт об истечении за 30/14/7 дней включён по умолчанию.

За сколько дней до истечения приходит алерт?

Tracker.ru шлёт три алерта: за 30, 14 и 7 дней до даты истечения. Это позволяет среагировать без аврала: за 30 дней — спокойно проверить состояние auto-renew, за 14 — взять процесс под ручной контроль, за 7 — экстренно обновить вручную, если auto-renew всё ещё не сработал. На Free-тарифе доступен только алерт за 7 дней, на Basic и Pro — все три порога.

Что делать если auto-renew Let's Encrypt сломался?

Получили алерт за 30 дней — проверьте логи certbot/acme.sh на сервере (journalctl -u certbot.timer для systemd-таймера или crontab для классического cron). Самые частые причины: изменился webroot после миграции, port 80 закрыт фаерволом и провалидировать домен невозможно, превышен rate limit Let's Encrypt (5 cert/неделя на домен). После починки — запустите certbot renew --force-renewal, и Tracker.ru автоматически обновит дату истечения и сбросит цикл алертов.

Будет ли приходить алерт каждый день после первого?

Нет. Между алертами действует анти-флап дедупликация: повторный алерт за тот же сертификат приходит не чаще раза в 24 часа. Один сертификат — одна цепочка из трёх алертов (30 → 14 → 7). Если сертификат обновлён, цикл автоматически сбрасывается. Никаких ежедневных уведомлений «осталось 29 дней... осталось 28... осталось 27...» — только три значимых порога.

Можно ли получать алерты в Telegram-канал команды?

Да. Подключите бота @tracker_ru_bot в групповой чат, добавьте chat_id в /my/notifications — алерты будут приходить в чат всей команде. Подробнее — /docs/notifications/telegram. Также работают каналы MAX, Email и Webhook: в одну компанию можно подключить несколько каналов сразу, и алерт продублируется в каждый.

Что включает событие webhook ssl.expiring?

JSON-payload с полями event (ssl.expiring), domain, days_left (30/14/7), expires_at (ISO-8601), monitor_url (URL мониторящегося сайта). Подпись HMAC-SHA256 идёт в заголовке X-Tracker-Signature — проверяйте подпись на стороне приёмника. При обновлении сертификата дополнительно приходит событие ssl.renewed с теми же полями. Подробный формат — /docs/notifications/webhooks.

См. также