Все руководства по развёртыванию Развёртывание

Как проверить срок действия SSL-сертификата

Истёкший SSL-сертификат вызывает отображение полноэкранного предупреждения безопасности в браузере, блокируя доступ посетителей к вашему сайту. Вот как проверить, когда истекает ваш сертификат, и настроить мониторинг.

Проверка через браузер

  1. Перейдите на ваш сайт с https://
  2. Нажмите на значок замочка в адресной строке
  3. Нажмите “Сертификат” или “Безопасное подключение” → “Сертификат действителен”
  4. Найдите дату “Действителен до” или “Истекает”

Проверка с помощью OpenSSL (командная строка)

Удалённая проверка (с любого компьютера)

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

Результат: notAfter=Aug 5 12:00:00 2026 GMT

Проверка локального файла

openssl x509 -noout -enddate -in /etc/ssl/gethttps/fullchain.pem

Проверка всех деталей сразу

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -subject -issuer -dates

Проверка с помощью однострочного скрипта

Проверьте, истекает ли сертификат в течение 30 дней:

if openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -checkend 2592000 > /dev/null 2>&1; then
  echo "Certificate is valid for at least 30 more days"
else
  echo "WARNING: Certificate expires within 30 days!"
fi

Проверка нескольких доменов одновременно

Если вы управляете несколькими доменами, проверьте их все в цикле:

for domain in example.com www.example.com api.example.com; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
  echo "$domain — expires: $expiry"
done

Автоматический мониторинг с помощью cron

Создайте ежедневную задачу cron, которая отправляет вам письмо, когда до истечения сертификата осталось менее 30 дней:

#!/bin/bash
# Сохраните как /usr/local/bin/check-ssl-expiry.sh

DOMAINS="example.com www.example.com api.example.com"
WARN_DAYS=30
WARN_SECS=$((WARN_DAYS * 86400))

for domain in $DOMAINS; do
  if ! echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | \
    openssl x509 -noout -checkend $WARN_SECS > /dev/null 2>&1; then
    echo "WARNING: $domain certificate expires within $WARN_DAYS days" | \
      mail -s "SSL Expiry Warning: $domain" admin@example.com
  fi
done

Добавьте в crontab: 0 9 * * * /usr/local/bin/check-ssl-expiry.sh

Настройка сервисов мониторинга

Для более надёжного подхода используйте сервис мониторинга:

МетодКакСтоимостьВарианты оповещений
Напоминание в календареУстановите на 60 дней после выпускаБесплатноВручную
Скрипт cronЗапускайте скрипт проверки ежедневноБесплатноEmail
UptimeRobotДобавьте SSL-монитор, установите порог оповещенияБесплатный тарифEmail, Slack, webhook
Better UptimeSSL-мониторинг с управлением инцидентамиБесплатный тарифEmail, SMS, Slack
Автообновление Certbotcertbot renew через systemd timerБесплатноПолностью предотвращает истечение

Для 90-дневных сертификатов Let’s Encrypt обновляйте на 60-й день (30 дней запаса).

Какие данные сертификата следует проверять?

Помимо даты истечения, периодически проверяйте:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep -E 'Subject:|Issuer:|Not After|DNS:'

Это покажет:

  • Subject/SAN — сертификат покрывает нужные домены
  • Issuer — выдан ожидаемым CA (например, Let’s Encrypt)
  • Not After — дата истечения
  • DNS names — все доменные имена в поле SAN

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

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

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

Как часто нужно проверять?

Если у вас автоматическое обновление (Certbot), проверяйте ежемесячно в качестве подстраховки. Если вы обновляете вручную (GetHTTPS), проверяйте на 50-й день и установите строгое напоминание на 60-й день. С переходом на 47-дневные сертификаты в 2029 году мониторинг станет ещё более важным.

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

Да. Онлайн-инструменты, такие как SSL Labs Server Test и SSL Checker от SSL Shopper, показывают данные сертификата, включая даты истечения — просто введите ваш домен. Инструменты разработчика браузера также показывают эту информацию (значок замочка → Сведения о сертификате).

Что делать, если сертификат уже истёк?

Обновите немедленно. Перейдите на GetHTTPS, чтобы получить новый сертификат, замените файлы на сервере и перезагрузите веб-сервер. Процесс занимает 5 минут. За истечение сертификата нет штрафа — просто обновите и установите новый.

Можно ли мониторить несколько доменов из одного скрипта?

Да. Вот скрипт, который проверяет все ваши домены и выводит оставшиеся дни:

#!/bin/bash
for domain in example.com www.example.com api.example.com; do
  expiry=$(echo | openssl s_client -connect "$domain":443 -servername "$domain" 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
  days_left=$(( ($(date -d "$expiry" +%s) - $(date +%s)) / 86400 ))
  if [ "$days_left" -lt 30 ]; then
    echo "WARNING $domain: $days_left days left"
  else
    echo "OK $domain: $days_left days left"
  fi
done

Примечание: Синтаксис date -d специфичен для Linux. На macOS используйте date -j -f "%b %d %H:%M:%S %Y %Z".

Похожие статьи

Начало работы 2026-05-07
Как продлить сертификат Let's Encrypt
Сертификаты Let's Encrypt истекают каждые 90 дней. Узнайте, как продлить с помощью GetHTTPS (вручную) или Certbot (автоматически), и подготовьтесь к 47-дневному сроку действия.
SSL и сертификаты 2026-05-07
Срок действия SSL-сертификатов: изменение на 47 дней
CA/Browser Forum проголосовал за сокращение срока действия SSL-сертификатов до 47 дней к 2029 году. Узнайте хронологию, что это значит для вашего сайта и как подготовиться.
Развёртывание 2026-05-08
Как установить SSL-сертификат на Nginx
Пошаговое руководство по установке SSL-сертификата на Nginx. Охватывает загрузку файлов, полную конфигурацию серверного блока, лучшие практики TLS, HTTP/2, HSTS, настройку редиректов, тестирование и устранение 6 распространённых ошибок.
Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат