Перейти к основному содержимому

Документация

Полное руководство по настройке мониторинга сайтов с PingZen. Документация API, примеры кода и лучшие практики.

TLS/SSL-монитор открывает TLS-соединение с хостом и портом, читает сертификат, который отдал сервер, и предупреждает до его истечения. Он не отправляет ни одного прикладного байта — ни HTTP-запроса, ни почтовой команды — поэтому работает с любым сервисом, который поднимает TLS с первого байта.

Сертификаты — это не про HTTP. Тот же сертификат с тем же сроком годности стоит перед почтой (SMTPS на 465, IMAPS на 993), каталогами (LDAPS на 636), брокерами сообщений (AMQPS на 5671), IoT (MQTTS на 8883), кэшами и базами поверх TLS (Redis на 6380), gRPC, защищёнными вебсокетами и любым своим бинарным протоколом. Рукопожатие у них одно и то же — поэтому один тип монитора закрывает их все.

:465:636:5671:8883TLSnotAfter

Про название. Самого 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-монитор из сертификата хранит только три значения: выпущен, истекает и сколько дней осталось.

TLS/SSLHTTPS!!14 d7 d0! — оповещение «Сертификат истекает»

Почта, каталоги, брокеры, IoT — всё, что не веб

HTTPS-монитор обязан после рукопожатия отправить HTTP-запрос, поэтому на порту LDAPS, AMQPS или MQTTS он будет вечно красным, каким бы здоровым ни был сертификат. TLS/SSL-монитор не отправляет ничего — завершил рукопожатие, прочитал сертификат, закрыл соединение. Для всего, что не является веб-сервером, это единственный вариант.

HTTPSTLSGET /TLS/SSLTLSnotAfter

Сертификат, который продлеваете не вы

Партнёрский API, платёжный шлюз, CDN, витрина на чужом домене. Письмо о продлении от их регистратора придёт им, а простой достанется вам. Монитор на их хост — единственное предупреждение, которое вы получите. Если это обычный сайт, хватит и HTTPS-монитора; TLS/SSL-монитор нужен, когда чужая точка входа — не HTTP или живёт на нестандартном порту.

notAfter 2026-10-02example.com

Полный список сервисов и портов, с которыми работает TLS/SSL-монитор, — в следующем разделе.

С какими сервисами работает

TLS/SSL-монитор работает с любым сервисом, который поднимает TLS сразу при подключении, на любом порту:

СервисТипичный адрес
HTTPS на нестандартном портуexample.com:8443
SMTPS (почта поверх сразу-TLS)mail.example.com:465
LDAPSldap.example.com:636
AMQPS (RabbitMQ)mq.example.com:5671
MQTTSiot.example.com:8883
Redis поверх TLScache.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, RDPTLS согласуется внутри собственного стартового обмена протоколаНечем — порта, который отдавал бы TLS сразу, у них не бывает

Если порта со сразу-TLS у сервиса нет вообще, оповещать об истечении его сертификата в PingZen сейчас нечем. SMTP-монитор на 587 подтвердит, что STARTTLS ещё предлагается и сервер отвечает, но даты сертификата не покажет.

Что проверяется

На каждой проверке TLS/SSL-монитор читает сертификат и проверяет его:

  1. Дни до истечения — из поля notAfter
  2. Срок жизни сертификатаnotAfter минус notBefore, используется для подстройки порогов (см. ниже)
  3. Валидность цепочки — сертификат должен быть подписан доверенным центром
  4. Совпадение имени хоста — проверяемый хост должен быть в списке SAN сертификата
  5. Издатель, субъект и список SAN — показываются на странице монитора
  6. Версия TLS и шифр — записываются на каждой проверке

Срок — основная причина заводить такой монитор, но цепочка и имя хоста проверяются каждый раз. Сертификат, которому осталось ещё 60 дней, но подписанный центром, которому не доверяют браузеры посетителей, всё равно не пройдёт проверку.

Пороги срока действия

Когда монитор реагирует, определяют две настройки:

Предупреждение (дней) — по умолчанию 14

Внутри этого окна монитор становится жёлтым (деградация). На аптайм это не влияет — сервис работает, просто требует внимания.

Критический порог (дней) — по умолчанию 7

Внутри этого окна монитор дополнительно шлёт оповещение «Сертификат истекает» — не чаще раза в 24 часа, на все оповещения с этим триггером.

По умолчанию стоит 14 дней, а не 30, потому что Let’s Encrypt обновляет 90-дневный сертификат, когда до конца остаётся 30 дней. Порог в 30 дней срабатывал бы на каждом здоровом обновлении.

Жёлтый статус и оповещение — разные вещи. Монитор желтеет сразу, как начинается окно предупреждения, а письмо или сообщение в Telegram приходит только внутри критического окна. Жёлтый бейдж без письма — это ожидаемое поведение, а не баг.

Ограничение по сроку жизни сертификата

90 d14 / 76 d2 / 1notBeforenotAfter

Сертификаты становятся короче. 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 секунд.