PingMap beta
Новое HTTP-проверка сайта с разных городов

Распределённая HTTP-проверка одновременно с мониторинговых агентов в Москве, Санкт-Петербурге, Челябинске и других городах. По каждому агенту: статус-код, waterfall DNS/TCP/TLS/TTFB/Download, SSL-сертификат и WHOIS — в одном отчёте на интерактивной карте. Опционально — ping/MTR. Отчёт хранится 24 часа.

Открыть →

Срок действия SSL-сертификата

Срок действия SSL-сертификата — это период между датами NotBefore и NotAfter в X.509: до NotAfter браузеры считают сертификат валидным, после — блокируют сайт. Инструмент бесплатно показывает, сколько дней осталось, точную дату окончания и индикатор риска. Подключаемые напоминания за 30, 14 и 7 дней присылают уведомление, чтобы продление не сорвалось.

Нужна полная проверка SSL (издатель, цепочка доверия, версия TLS, длина ключа)? Используйте полную проверку SSL-сертификата — комплексный инструмент с разбором всего сертификата.

Что происходит ровно в момент истечения

Истечение сертификата -- это не плавная деградация, а резкая отсечка по часу UTC. До 23:59:59 предыдущего дня сертификат считается валидным, в 00:00:00 следующего -- невалидным. Никаких grace-периодов:

T+0 -- браузеры показывают NET::ERR_CERT_DATE_INVALID

Chrome, Firefox, Safari блокируют переход. Пользователь видит красный экран "Подключение не защищено" с кнопкой "Назад в безопасность". Кнопка "Перейти всё равно" есть, но требует 3 клика и большинство закрывает вкладку.

T+0 -- API падает с TLS handshake error

Все интеграции через HTTPS перестают работать одновременно: webhook-получатели, мобильные приложения, чат-боты, IoT-устройства, cron-задачи на curl. Сообщение от клиента: "после полуночи всё легло".

T+24h -- падают первые позиции в SEO

Googlebot за сутки успевает многократно поймать ошибку HTTPS. Сайт начинает падать в выдаче. После восстановления сертификата позиции не возвращаются сразу -- нужны недели на переоценку.

T+72h -- HSTS preload становится проблемой

Если домен в HSTS preload-листе браузеров, пользователи не могут обойти ошибку даже через "Перейти всё равно" -- браузер заблокирует полностью. Восстановление требует валидного сертификата + времени на распространение TLS-сессий.

Почему автопродление иногда не срабатывает

У 80% сайтов на 2026 год стоит Let's Encrypt с 90-дневным сертификатом и автопродление через certbot/acme.sh. Тем не менее сертификаты регулярно истекают. Реальные причины из инцидентов:

  • HTTP-01 challenge не проходит -- редирект всего трафика на HTTPS, теперь Let's Encrypt не может верифицировать домен через /.well-known/acme-challenge/. Решение: либо исключить путь из редиректа, либо переключиться на DNS-01.
  • Сменился IP сервера -- DNS ещё не пропагировался, Let's Encrypt видит старый IP без нужного веб-сервера. Challenge fail.
  • Cron не запущен или systemd-timer выключен -- проверьте systemctl status certbot.timer и cat /var/log/letsencrypt/letsencrypt.log.
  • Превышен Let's Encrypt rate limit -- 50 сертификатов в неделю на основной домен, 5 дубликатов за 7 дней. Бьются shared-хостинги с одного IP.
  • Cloudflare/CDN перехватывает challenge -- если в Cloudflare включен Always Use HTTPS + Origin Cert, прямой Let's Encrypt на origin не пройдёт. Используйте Cloudflare API + DNS-01 или отключите перехват для /.well-known/.
  • Поменялась структура webroot -- developer перенёс nginx-config, certbot пишет в старый webroot, web-сервер читает из нового. Challenge "не находится".

Recovery: что делать прямо сейчас, если уже истёк

Время каждой минуты на счету -- пользователи уже видят красные экраны. Быстрая последовательность:

  1. 1. Выпустите новый сертификат немедленно.
    sudo certbot certonly --standalone -d example.com --force-renewal
    Если 80 порт занят nginx -- остановите его на 30 секунд или используйте --webroot. Один сертификат выписывается за 30-60 секунд.
  2. 2. Перезапустите веб-сервер.
    sudo nginx -s reload  # или  sudo systemctl reload nginx
    Без reload nginx продолжит отдавать старый сертификат из памяти. Проверьте через echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates.
  3. 3. Очистите DNS-кэш CDN. Если перед сервером стоит Cloudflare/AWS CloudFront -- они кэшируют TLS-сессии. Зайдите в панель CDN, сделайте Purge Everything или включите Development Mode на 3 часа.
  4. 4. Сообщите пользователям. Если у вас есть статус-страница -- разместите инцидент. Если нет -- хотя бы напишите в Telegram-канал и в твиттер. Пользователи прощают сбой если видят что вы реагируете.
  5. 5. Сразу настройте мониторинг. Чтобы это не повторилось через 90 дней -- подключите автоматические напоминания за 30/14/7 дней до следующего истечения.

Альтернативные способы проверить срок через CLI

Если нужна автоматизация или вы предпочитаете командную строку -- три рабочих способа:

openssl

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -enddate

Выведет: notAfter=Aug 22 12:00:00 2026 GMT

curl + jq (через crt.sh API)

curl -s "https://crt.sh/?q=example.com&output=json" \
  | jq '.[0].not_after'

Полезно когда сервер не отвечает -- crt.sh знает все выпущенные сертификаты из Certificate Transparency Logs.

Python one-liner

python -c "import ssl, socket; from datetime import datetime; \
ctx = ssl.create_default_context(); s = ctx.wrap_socket(socket.socket(), server_hostname='example.com'); \
s.connect(('example.com', 443)); print(s.getpeercert()['notAfter'])"

Без установки openssl, работает везде где есть Python 3.

Какие пороги уведомлений действительно работают

Из практики реагирования на SSL-инциденты вывели три порога. Меньше -- пропускаешь, больше -- становится шумом и теряет ценность:

30 дн
Запланируйте
Достаточно времени чтобы найти причину неработающего автопродления, договориться с админом, протестировать на staging.
14 дн
Действуйте
Если до сих пор не продлили -- это уже инцидент в очереди. Заведите тикет с deadline, эскалируйте если нужно.
7 дн
Critical
Бросьте все остальные задачи. Если автопродление не завелось за неделю -- значит сломан фундамент. Делайте вручную сейчас.

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

За сколько дней до истечения нужно начинать беспокоиться?
За 30 дней — установите напоминание о продлении. За 14 дней — проверьте, что автопродление сработало. За 7 дней — критично, нужно действовать вручную, иначе сайт упадёт у пользователей.
Что произойдёт, если SSL истечёт?
Браузеры покажут красное предупреждение "Подключение не защищено" — большинство пользователей закроет вкладку. API и мобильные приложения вернут ошибку TLS handshake. SEO упадёт — Google понижает сайты с невалидным HTTPS.
Можно ли отложить истечение, если сертификат уже просрочен?
Нет. После истечения сертификат становится невалидным мгновенно. Единственный путь — выпустить новый сертификат через Let's Encrypt, ваш CA или панель хостинга. Обычно это занимает 1–5 минут.
Почему сертификат истёк, если стоит auto-renew?
Частые причины: HTTP-challenge не проходит из-за редиректа, истёк токен ACME, упал cron-демон, недостаточно прав на запись в /etc/letsencrypt, или хостинг блокирует Let's Encrypt валидаторы. Проверьте логи certbot/acme.sh.
Сколько всего проверок SSL в месяц можно сделать бесплатно?
Через инструмент — без лимита. Для постоянного мониторинга в тарифе Free доступно 3 проверки SSL раз в 5 минут навсегда бесплатно.

Настройте автонапоминания за 30/14/7 дней -- следующий сертификат точно не упустите.