Мониторинг SSL выходит за рамки проверки сроков истечения. Полная система мониторинга отслеживает: истекающие сертификаты, изменения конфигурации, несанкционированный выпуск сертификатов и простои, вызванные ошибками SSL.
С сокращением срока действия сертификатов до 47 дней к 2029 году проактивный мониторинг становится необходимостью — пропущенное обновление выводит сайт из строя.
Что мониторить
| Что | Зачем | Как часто |
|---|---|---|
| Срок действия сертификата | Просроченный сертификат = сайт недоступен | Ежедневно |
| Цепочка сертификатов | Неполная цепочка = ошибки на некоторых устройствах | Еженедельно |
| Версия TLS | Старые версии TLS отключаются браузерами | Ежемесячно |
| CT-логи | Обнаружение несанкционированных сертификатов для вашего домена | Непрерывно |
| OCSP stapling | Сбой stapling снижает производительность | Еженедельно |
| Заголовок HSTS | Отсутствие HSTS = уязвимость к понижению версии | Ежемесячно |
Бесплатные варианты мониторинга
1. Cron-скрипт (самостоятельный хостинг)
#!/bin/bash
# /usr/local/bin/ssl-monitor.sh
DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
ALERT_EMAIL="admin@example.com"
for domain in $DOMAINS; do
expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
if [ -z "$expiry" ]; then
echo "ERROR: Can't connect to $domain:443" | mail -s "SSL Monitor: $domain unreachable" $ALERT_EMAIL
continue
fi
expiry_epoch=$(date -d "$expiry" +%s 2>/dev/null)
now_epoch=$(date +%s)
days_left=$(( (expiry_epoch - now_epoch) / 86400 ))
if [ "$days_left" -lt "$WARN_DAYS" ]; then
echo "$domain certificate expires in $days_left days ($expiry)" | mail -s "SSL Expiry Warning: $domain" $ALERT_EMAIL
fi
done
# Add to crontab — run daily at 9am
0 9 * * * /usr/local/bin/ssl-monitor.sh
2. UptimeRobot (SaaS — бесплатный тариф)
- Зарегистрируйтесь на UptimeRobot
- Добавьте монитор → Тип: HTTPS
- Введите URL вашего домена
- Установите оповещение об истечении SSL: за 30 дней до истечения
- Настройте оповещения: email, Slack, webhook
UptimeRobot проверяет каждые 5 минут и оповещает как о простоях, так и об истечении сертификатов.
3. Мониторинг Certificate Transparency
Мониторьте CT-логи на предмет несанкционированных сертификатов, выпущенных для вашего домена:
| Сервис | Как | Стоимость |
|---|---|---|
| Cert Spotter (SSLMate) | Email-оповещения о новых сертификатах | Бесплатный тариф |
| crt.sh | Ручной поиск | Бесплатно |
| Facebook CT Monitor | Инструмент мониторинга Facebook | Бесплатно |
Платные инструменты мониторинга
| Инструмент | Возможности | Цена |
|---|---|---|
| Better Uptime | SSL + аптайм + инциденты | Бесплатный тариф / от $20/мес |
| Datadog | Полный мониторинг инфраструктуры с проверками SSL | от $15/хост/мес |
| Pingdom | SSL + аптайм + производительность | от $10/мес |
| StatusCake | Мониторинг SSL + оповещения | Бесплатный тариф / от $20/мес |
Пример полной конфигурации мониторинга
Для продакшен-сайта комбинируйте несколько уровней:
Layer 1: Certbot auto-renewal (prevents expiry)
Layer 2: Cron script (catches renewal failures — daily email)
Layer 3: UptimeRobot (catches SSL errors — 5-min checks)
Layer 4: CT monitoring (catches unauthorized certs — continuous)
Это обеспечивает эшелонированную защиту — ни одной единственной точки отказа.
Мониторинг с GetHTTPS
GetHTTPS не включает встроенный мониторинг (это инструмент для выпуска сертификатов). Но ваш рабочий процесс должен быть следующим:
- Выпустите сертификат с помощью GetHTTPS
- Настройте напоминания об обновлении — оповещение в календаре на 60-й день из 90
- Добавьте мониторинг SSL — cron-скрипт или SaaS-инструмент в качестве резервной копии
- Рассмотрите Certbot для автоматического обновления на продакшене
Часто задаваемые вопросы
Какой минимальный мониторинг нужен?
Как минимум: напоминание в календаре об обновлении сертификата (60-й день из 90) И автоматическая проверка (cron-скрипт или UptimeRobot). Календарь покрывает обычные обновления; автоматическая проверка обнаруживает сбои.
Как мониторить несколько доменов?
Cron-скрипт выше обрабатывает несколько доменов в цикле. SaaS-инструменты, такие как UptimeRobot, позволяют добавлять несколько мониторов — по одному на домен.
Нужно ли мониторить сертификаты staging/разработки?
Да, если это сертификаты Let’s Encrypt, которые истекают. Просроченный сертификат staging блокирует QA и разработку. Как минимум, установите напоминание в календаре.
А как насчёт мониторинга цепочки сертификатов, а не только срока действия?
SSL Labs API обеспечивает автоматическую проверку цепочки. Для быстрой ручной проверки:
echo | openssl s_client -connect example.com:443 2>/dev/null | grep "Verify return code"
Добавьте это в ваш cron-скрипт для мониторинга цепочки.