Документация
Полное руководство по настройке мониторинга сайтов с PingZen. Документация API, примеры кода и лучшие практики.
TLS/SSL-монитор открывает TLS-соединение с хостом и портом, читает сертификат, который отдал сервер, и предупреждает до его истечения. Он не отправляет ни одного прикладного байта — ни HTTP-запроса, ни почтовой команды — поэтому работает с любым сервисом, который поднимает TLS с первого байта.
Сертификаты — это не про HTTP. Тот же сертификат с тем же сроком годности стоит перед почтой (SMTPS на 465, IMAPS на 993), каталогами (LDAPS на 636), брокерами сообщений (AMQPS на 5671), IoT (MQTTS на 8883), кэшами и базами поверх TLS (Redis на 6380), gRPC, защищёнными вебсокетами и любым своим бинарным протоколом. Рукопожатие у них одно и то же — поэтому один тип монитора закрывает их все.
Про название. Самого SSL давно нет: SSLv3 объявлен устаревшим в 2015 году, а работает сегодня TLS 1.2 или TLS 1.3. Но сертификаты в обиходе название не сменили, поэтому удостоверяющие центры до сих пор продают «SSL-сертификаты», а в любом сервисе мониторинга есть SSL-проверка. Поэтому монитор и в интерфейсе, и здесь называется TLS/SSL: сначала TLS, потому что по проводу работает именно он, и только потом SSL, потому что это слово всё ещё ищут. Там, где разница важна, на этой странице написано TLS.
TLS/SSL-монитор или HTTPS-монитор?
За сертификатом следят оба, но отвечают на разные вопросы. HTTPS-монитор снимает дату окончания с того самого соединения, которым проверяет сайт, и внутри критического окна сам шлёт оповещение «Сертификат истекает». TLS/SSL-монитор не говорит ни на одном прикладном протоколе, поэтому достаёт до сервисов, куда HTTP-запрос не дойдёт, и записывает сертификат целиком, а не только его даты. Пара «HTTPS + TLS/SSL на одном хосте» перестала быть обязательной — если второй монитор заведён только ради отсчёта дней, его можно удалить и освободить слот тарифа. Ниже — что даёт каждый и когда TLS/SSL-монитор по-прежнему нужен.
Сайт: предупредят оба, но по-разному
HTTPS-монитор остаётся зелёным и внутри критического окна (по умолчанию 7 дней) шлёт оповещение «Сертификат истекает» — статус не меняется, инцидент не открывается, аптайм не теряется. TLS/SSL-монитор желтеет раньше, уже за 14 дней, умеет прислать на этот переход оповещение «Деградация» и на каждой проверке записывает издателя, субъект, список SAN, версию TLS и шифр. HTTPS-монитор из сертификата хранит только три значения: выпущен, истекает и сколько дней осталось.
Почта, каталоги, брокеры, IoT — всё, что не веб
HTTPS-монитор обязан после рукопожатия отправить HTTP-запрос, поэтому на порту LDAPS, AMQPS или MQTTS он будет вечно красным, каким бы здоровым ни был сертификат. TLS/SSL-монитор не отправляет ничего — завершил рукопожатие, прочитал сертификат, закрыл соединение. Для всего, что не является веб-сервером, это единственный вариант.
Сертификат, который продлеваете не вы
Партнёрский API, платёжный шлюз, CDN, витрина на чужом домене. Письмо о продлении от их регистратора придёт им, а простой достанется вам. Монитор на их хост — единственное предупреждение, которое вы получите. Если это обычный сайт, хватит и HTTPS-монитора; TLS/SSL-монитор нужен, когда чужая точка входа — не HTTP или живёт на нестандартном порту.
Полный список сервисов и портов, с которыми работает TLS/SSL-монитор, — в следующем разделе.
С какими сервисами работает
TLS/SSL-монитор работает с любым сервисом, который поднимает TLS сразу при подключении, на любом порту:
| Сервис | Типичный адрес |
|---|---|
| HTTPS на нестандартном порту | example.com:8443 |
| SMTPS (почта поверх сразу-TLS) | mail.example.com:465 |
| LDAPS | ldap.example.com:636 |
| AMQPS (RabbitMQ) | mq.example.com:5671 |
| MQTTS | iot.example.com:8883 |
| Redis поверх TLS | cache.example.com:6380 |
| Защищённый WebSocket, gRPC поверх TLS или свой бинарный протокол | api.example.com:8443 |
Монитор никогда не говорит на протоколе, который стоит за портом — он только завершает рукопожатие и читает сертификат. Поэтому один тип монитора закрывает их все.
С чем не работает
Некоторые сервисы не отдают TLS с первого байта. Они начинают в открытом виде, а клиент просит перейти на шифрование командой вроде STARTTLS. Такие сертификаты TLS/SSL-монитор прочитать не может: он пытается начать TLS сразу, а сервер в этот момент ещё говорит открытым текстом. Почти у всех есть парный порт, который отдаёт TLS сразу, — наводите монитор на него.
| Не поддерживается | Почему | Чем заменить |
|---|---|---|
| SMTP на портах 587 и 25 | Сначала открытый текст, потом STARTTLS | Порт 465 — сертификат тот же самый |
| IMAP на 143 | Сначала открытый текст, потом STARTTLS | Порт 993 — причём второй монитор не нужен: IMAP-монитор на 993 сам читает сертификат и шлёт «Сертификат истекает» |
| POP3 на 110 | Сначала открытый текст, потом STARTTLS | Порт 995 |
| Явный FTPS на порту 21 | Сначала открытый текст, потом AUTH TLS | Порт 990 |
| PostgreSQL, MySQL, RDP | TLS согласуется внутри собственного стартового обмена протокола | Нечем — порта, который отдавал бы TLS сразу, у них не бывает |
Если порта со сразу-TLS у сервиса нет вообще, оповещать об истечении его сертификата в PingZen сейчас нечем. SMTP-монитор на 587 подтвердит, что STARTTLS ещё предлагается и сервер отвечает, но даты сертификата не покажет.
Что проверяется
На каждой проверке TLS/SSL-монитор читает сертификат и проверяет его:
- Дни до истечения — из поля
notAfter - Срок жизни сертификата —
notAfterминусnotBefore, используется для подстройки порогов (см. ниже) - Валидность цепочки — сертификат должен быть подписан доверенным центром
- Совпадение имени хоста — проверяемый хост должен быть в списке SAN сертификата
- Издатель, субъект и список SAN — показываются на странице монитора
- Версия TLS и шифр — записываются на каждой проверке
Срок — основная причина заводить такой монитор, но цепочка и имя хоста проверяются каждый раз. Сертификат, которому осталось ещё 60 дней, но подписанный центром, которому не доверяют браузеры посетителей, всё равно не пройдёт проверку.
Пороги срока действия
Когда монитор реагирует, определяют две настройки:
Предупреждение (дней) — по умолчанию 14
Внутри этого окна монитор становится жёлтым (деградация). На аптайм это не влияет — сервис работает, просто требует внимания.
Критический порог (дней) — по умолчанию 7
Внутри этого окна монитор дополнительно шлёт оповещение «Сертификат истекает» — не чаще раза в 24 часа, на все оповещения с этим триггером.
По умолчанию стоит 14 дней, а не 30, потому что Let’s Encrypt обновляет 90-дневный сертификат, когда до конца остаётся 30 дней. Порог в 30 дней срабатывал бы на каждом здоровом обновлении.
Жёлтый статус и оповещение — разные вещи. Монитор желтеет сразу, как начинается окно предупреждения, а письмо или сообщение в Telegram приходит только внутри критического окна. Жёлтый бейдж без письма — это ожидаемое поведение, а не баг.
Ограничение по сроку жизни сертификата
Сертификаты становятся короче. Let’s Encrypt уже выдаёт шестидневные сертификаты, а CA/Browser Forum проголосовал за снижение максимума до 47 дней к 2029 году. Фиксированный порог «предупредить за 7 дней» держал бы шестидневный сертификат в критическом окне постоянно.
Поэтому PingZen ограничивает оба порога сроком жизни самого сертификата:
- порог предупреждения не превышает трети срока жизни
- критический порог не превышает одной шестой срока жизни
Ограничение только понижает настройку, но никогда не повышает. При значениях по умолчанию 14 и 7 оно вообще ничего не делает, пока сертификат живёт дольше 42 дней.
| Срок жизни сертификата | Предупреждение за | Критический за |
|---|---|---|
| 90 дней (обычный Let's Encrypt) | 14 дней | 7 дней |
| 45 дней | 14 дней | 7 дней |
| 30 дней | 10 дней | 5 дней |
| 12 дней | 4 дня | 2 дня |
| 6 дней (короткоживущий Let's Encrypt) | 2 дня | 1 день |
Ограничение применяется незаметно: бейдж с оставшимися днями красится уже по урезанным значениям, но в форме остаются те числа, которые вы задали. Если сервер не отдал пригодную дату выпуска, ограничение отключается и работают исходные настройки.
Что означает каждый статус
| Ситуация | Статус | Что происходит |
|---|---|---|
| Вне обоих окон | UP | На мониторе показано, сколько дней осталось |
| Внутри окна предупреждения | DEGRADED | Жёлтый бейдж, оповещение «Деградация» при входе. Инцидент не открывается, аптайм не теряется |
| Внутри критического окна | DEGRADED | Тот же жёлтый бейдж плюс оповещение «Сертификат истекает», не чаще раза в 24 часа |
| Сертификат истёк | DOWN | Открывается инцидент, уходит оповещение о недоступности |
| Неполная цепочка (нет промежуточного сертификата) | DEGRADED | Браузеры примут, другие клиенты могут не принять. Лечится отдачей полной цепочки |
| Самоподписанный, недоверенный издатель или чужое имя хоста | DOWN | Данные сертификата всё равно показываются, видно, что именно отдал сервер |
Настройки
Адрес
Имя хоста, имя хоста с портом или полный URL. Схема и путь отбрасываются, поэтому вставленный из браузера адрес тоже подойдёт. Без порта используется 443. Примеры: example.com, example.com:8443, https://example.com/login
Предупреждение (дней)
Когда монитор желтеет. По умолчанию 14, допустимо от 1 до 365. Ограничивается третью срока жизни сертификата.
Критический порог (дней)
Когда начинают приходить оповещения. По умолчанию 7, допустимо от 1 до 30, и никогда не больше порога предупреждения. Ограничивается одной шестой срока жизни сертификата.
Интервал проверки
По умолчанию 6 часов. Сертификаты меняются редко, проверять их каждую минуту незачем.
Оповещения
Чтобы получать уведомления, привяжите оповещение с триггером Сертификат истекает. Добавьте ещё триггер Деградация, если хотите узнавать и о более раннем жёлтом этапе.
У оповещений о сертификате свой собственный суточный интервал, отдельный от оповещений о недоступности, поэтому напоминание о сертификате никогда не заглушит сообщение о реальной аварии.
Ключевые возможности
- Читает сертификат, не отправляя прикладных данных, поэтому работает на любом TLS-порту
- Пороги предупреждения и критического уровня сами подстраиваются под короткоживущие сертификаты
- Проверяет валидность цепочки и совпадение имени хоста на каждой проверке, а не только срок
- Показывает издателя, субъект, список SAN, версию TLS и шифр
- Показывает данные сертификата даже при провале проверки, видно, что именно отдал сервер
- Жёлтый статус не стоит аптайма: истекающий сертификат — предупреждение, а не авария
Частые вопросы
Какие протоколы можно мониторить?
PingZen поддерживает 23 протокола: HTTP/HTTPS, WebSocket (WS/WSS), TCP, UDP, ICMP Ping, gRPC, DNS, WHOIS, TLS/SSL сертификаты, Email (SMTP/IMAP/POP3), FTP/FTPS, DNSBL, PageSpeed, SOCKS5, MTProxy, API Check и Transaction. Вы можете мониторить сайты, API, серверы, базы данных и любые сетевые сервисы.
Как быстро приходят оповещения?
Telegram оповещения доставляются в течение 1-2 секунд после обнаружения. Slack и Discord уведомления приходят практически мгновенно. Вы можете настроить несколько каналов оповещений для резервирования.
Можно ли организовать мониторы по проектам?
Да! PingZen поддерживает рабочие пространства, которые позволяют организовать мониторы по проектам, окружениям или командам. Каждое рабочее пространство может иметь свои настройки оповещений и участников.
Есть ли API для автоматизации?
Абсолютно. PingZen предоставляет полный REST API с OpenAPI документацией. Вы можете создавать, обновлять и удалять мониторы программно.
Как работают статус-страницы?
Статус-страницы — это публичные брендированные страницы, показывающие аптайм ваших сервисов. Вы можете отображать статус в реальном времени и позволить клиентам подписаться на обновления.
Что происходит, если я достигну лимита мониторов?
Мы уведомим вас при приближении к лимиту. Вы можете приостановить некоторые мониторы или связаться с нами для увеличения лимита. Мы никогда не останавливаем мониторинг без предупреждения, обеспечивая защиту ваших критически важных сервисов.
Готовы перестать пропускать даунтаймы?
Присоединяйтесь к тысячам команд, которые доверяют PingZen. Настройка за 30 секунд.