SSL-сертификат

Мониторинг SSL-сертификата и уведомление об истечении

Раз в сутки сервис подключается к сайту, читает дату окончания сертификата, который реально отдаёт сервер, и заранее пишет вам, если до неё осталось меньше заданного числа дней.

Что происходит, когда сертификат истекает

Браузер перестаёт доверять сайту и вместо страницы показывает предупреждение: «Подключение не защищено», NET::ERR_CERT_DATE_INVALID в Chrome, «Предупреждение: вероятная угроза безопасности» в Firefox. Сервер при этом работает, страницы отдаются, но до них почти никто не доходит: посетитель видит красный экран и закрывает вкладку.

Страдает не только витрина. Мобильные приложения и интеграции, которые ходят в ваш API, обрывают соединение с ошибкой проверки сертификата. Платёжные системы и сервисы, присылающие вебхуки, перестают доставлять уведомления на адрес с недействительным сертификатом. Поисковые роботы получают ту же ошибку.

Почему сертификаты истекают, хотя «всё было настроено на автопродление»:

  • Сертификаты Let's Encrypt живут 90 дней, и продление держится на задаче по расписанию. Её достаточно потерять при переезде на новый сервер или обновлении системы.
  • Сертификат продлился, но веб-сервер не перечитал конфигурацию и продолжает отдавать старый файл.
  • Проверка домена при продлении не проходит: закрыли порт 80, поменяли DNS, перенесли сайт за прокси.
  • Платный сертификат продлевают вручную раз в год, и напоминание приходит на почту сотрудника, который уже не работает.
  • Сертификат стоит на поддомене или отдельном сервере (API, личный кабинет, CDN), о котором вспоминают последним.

Во всех этих случаях достаточно узнать о проблеме за пару недель до даты окончания. Именно это и делает мониторинг SSL.

Как работает проверка

Для каждого сайта с адресом на https:// сервис раз в сутки открывает TLS-соединение с тем хостом и портом, что указаны в адресе (по умолчанию 443), и передаёт имя сайта в SNI, как это делает браузер. Из полученного сертификата берётся дата окончания срока действия.

Важная деталь: проверяется сертификат, который сервер отдаёт прямо сейчас, а не тот, что лежит в панели хостинга или у регистратора. Если новый сертификат выпущен, но веб-сервер его ещё не подхватил, мониторинг это покажет: дата не сдвинется.

Если сертификат не проходит проверку доверия (самоподписанный, выдан на другое имя, уже истёк), сервис повторяет подключение без проверки и всё равно читает дату. Так предупреждение срабатывает именно в тех случаях, ради которых оно нужно.

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

Почему истёкший сертификат не считается падением

HTTP-проверка доступности намеренно не оценивает сертификат. Истёкший сертификат означает «пора продлить», а не «сервер не отвечает», и если бы проверка доступности падала на нём, каждый такой сайт показывал бы ложный простой, а uptime за месяц превратился бы в ноль. Поэтому доступность и сертификат живут отдельно: инцидент открывается, только когда сайт действительно не отвечает или отвечает не тем кодом, а про сертификат приходит своё предупреждение.

Когда приходит уведомление

У каждого сайта свой порог: «предупреждать за N дней», от 1 до 90, по умолчанию 14. Как только до окончания срока остаётся N дней или меньше, приходит сообщение «SSL-сертификат истекает через N дн.» со ссылкой на сайт в кабинете.

  • Пока сертификат не продлён, напоминание повторяется раз в неделю, а не каждый день: почта не превращается в спам, но и забыть не получится.
  • Если дата уже прошла, текст меняется на «истёк N дн. назад». Через 30 дней после окончания срока напоминания прекращаются.
  • После продления сервис увидит новую дату при следующей суточной проверке, и предупреждения прекратятся сами.

Сообщения уходят в те каналы, где для сайта включены уведомления «О падениях»: на Email и в Telegram. Для интеграций есть событие ssl_expiry в Webhook: его можно передать в таск-трекер или чат команды.

Сколько дней ставить

СертификатПорогПочему
Let's Encrypt с автопродлением20–25 днейCertbot по умолчанию продлевает сертификат за 30 дней до конца. Если за 20 дней он всё ещё старый, автопродление сломано, и времени на починку достаточно.
Платный на год30–60 днейНужно время на оплату, проверку организации или домена и установку.
Тестовые и служебные стенды7–14 днейДостаточно, чтобы не узнать о проблеме от коллег.

Как включить мониторинг SSL

  1. Войдите по Email: на почту придёт код, пароль не нужен.
  2. Добавьте сайт с адресом на https://. Галка «Проверять SSL-сертификат» включена по умолчанию.
  3. В поле «Предупреждать за (дней)» укажите свой порог или оставьте 14.
  4. Проверьте, что включены уведомления «О падениях» на Email или в Telegram: по этим же галкам приходят предупреждения о сертификате.

Одновременно сайт начнёт проверяться на доступность с выбранным интервалом, а если включена проверка домена, сервис будет следить и за сроком регистрации домена. Это три самые частые причины, по которым сайт внезапно перестаёт открываться.

Что мониторинг SSL не делает

Проверяется срок одного сертификата: того, что отдаёт хост из адреса сайта. Если у вас отдельные сертификаты на api., shop. или других поддоменах, добавьте каждый адрес отдельным сайтом, иначе их срок останется без присмотра. Оценки настроек TLS (версии протокола, шифры, смешанное содержимое на страницах) сервис не выставляет: его задача в том, чтобы сертификат не истёк незаметно.

Вопросы и ответы

Как часто проверяется сертификат?

Один раз в сутки для каждого сайта с включённой SSL-проверкой. Доступность самого сайта при этом проверяется отдельно, с вашим интервалом от 1 до 60 минут.

Будет ли сайт считаться упавшим, когда сертификат истечёт?

Нет. HTTP-проверка не оценивает сертификат, поэтому истёкший сертификат не открывает инцидент и не портит uptime. О нём приходит отдельное предупреждение: «SSL-сертификат истёк N дней назад».

Что, если сертификат самоподписанный или выдан на другое имя?

Дата окончания всё равно читается: после неудачной проверки доверия сервис повторяет подключение без неё и берёт срок из сертификата. Предупреждение об истечении придёт как обычно.

Можно ли проверять сертификат на нестандартном порту?

Да. Укажите порт в адресе сайта, например https://example.com:8443: проверка подключится к нему. Без порта используется 443.

Сколько стоит мониторинг SSL?

Проверка сертификата входит в базовый тариф без оплаты вместе с остальными проверками, до 10 сайтов. Подробности на странице тарифов.

Подключите мониторинг за минуту

Вход по коду из письма, без пароля и банковской карты. До 10 сайтов бесплатно.

Начать мониторинг