SSL-сертификаты Linux NET::ERR_CERT_DATE_INVALID

Сертификат SSL истёк: как продлить Let's Encrypt

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

Если SSL-сертификат истёк, обновите его: для Let's Encrypt выполните certbot renew, проверьте таймер, DNS и порт 80, перезагрузите веб-сервер; для платного сертификата сформируйте CSR, получите новый и установите цепочку, затем проверьте на ssllabs.com.

В этой статье
  1. Что произошло
  2. Причины неудачи
  3. Порядок для Let's Encrypt
  4. Для платных сертификатов
  5. Мониторинг
SSL certificate expired
NET::ERR_CERT_DATE_INVALID / Ваше подключение не защищено / Срок действия сертификата истёк
По-русскиБраузер сообщает об истёкшем сертификате.

#Что произошло

Сертификат действует ограниченное время: Let's Encrypt — 90 дней, платные — обычно не более 398 дней. По истечении срока браузеры блокируют сайт предупреждением «Подключение не защищено». Автоматическое продление могло не сработать из-за остановки таймера certbot, изменения конфигурации, закрытого порта 80 для проверки, смены DNS или просроченной проверки домена. Исправляется выпуском нового сертификата и перезагрузкой веб-сервера.

#Причины неудачи

Возможная причинаКак узнатьЧто делать
Не работает таймер certbotОтключен.Нет записей о продлении.Включите systemctl enable --now certbot.timer.
Порт 80 закрытФайрвол, редирект.Ошибка проверки HTTP-01.Откройте порт 80.
Домен указывает на другой серверСмена DNS.Проверка не проходит.Проверьте A-запись.
Веб-сервер не перезагруженСтарый сертификат в памяти.Файл новый, сайт старый.reload.
Неполная цепочкаНет промежуточного.Работает в Chrome, ошибки в curl.Используйте fullchain.pem.
Превышен лимит запросовМного попыток.Rate limit.Подождите, используйте staging для тестов.

#Порядок для Let's Encrypt

  1. Проверьте, какой сертификат истёкНа компьютере с OpenSSL выполните openssl s_client -connect пример-домена:443 -servername пример-домена и просмотрите сертификат командой openssl x509 -noout -dates -subject через канал вывода. Убедитесь, что срок действительно истёк и сертификат относится к вашему имени: если TLS завершает CDN, его сертификат может отличаться от сертификата origin.
  2. Проверьте работу Certbot и его расписанияНа сервере через SSH выполните sudo certbot certificates и systemctl list-timers | grep -i certbot либо проверьте cron, который использует ваша установка. Найдите строку с нужным доменом и путь к каталогу сертификата; если certbot не установлен, сначала определите, кто именно управляет сертификатами на этом сайте.
  3. Выполните пробное и штатное продлениеДля управляемых Certbot сертификатов запустите sudo certbot renew --dry-run и читайте ошибки. Только если тест успешен и срок требует продления, выполняйте sudo certbot renew; команда может не обновить ещё не истекающий сертификат — это нормально. При ошибке проверки не повторяйте запросы многократно, чтобы не попасть под ограничения УЦ.
  4. Проверьте DNS и способ проверки доменаПри ошибке HTTP-01 проверьте публичный DNS, доступность порта 80 и соответствующий webroot/прокси; при DNS-01 убедитесь, что TXT-запись проверки появилась на авторитетных NS. Для wildcard нужен DNS-01, обычный HTTP-01 его не подтверждает. Не размещайте открыто ключи API DNS-провайдера.
  5. Примените сертификат без перезагрузки системыУбедитесь, что веб-сервер использует новые пути fullchain/key, выполните sudo nginx -t или sudo apachectl configtest в зависимости от установленной службы. После успешного теста выполните reload только нужного веб-сервера; перезагружать всю ОС ради сертификата не нужно.
  6. Проверьте сертификат снаружиПовторите внешнюю проверку OpenSSL с SNI и проверьте новый notAfter, соответствие имени и цепочку. Откройте сайт с телефона через другую сеть, не отключая проверку TLS; если по-прежнему старый сертификат, проверьте, какой прокси/CDN принимает соединение.
  7. Настройте контроль автоматического продленияНастройте штатный systemd timer/cron для Certbot и уведомление о скором истечении сертификата через мониторинг. Выполните будущую пробную проверку после изменения DNS или схемы прокси, а не ждите фактического прекращения HTTPS.
  8. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Срок действия сертификата сайта
    Linux · Терминал (Bash)Команда
    Срок действия сертификата сайта
    echo | openssl s_client -connect example.ru:443 -servername example.ru 2>/dev/null | openssl x509 -noout -dates -subject
    Вариант 2Список сертификатов certbot и даты окончания
    Linux · Терминал (Bash)КомандаНужен sudo
    Список сертификатов certbot и даты окончания
    sudo certbot certificates
    systemctl list-timers | grep certbot
    Вариант 3Проверка и штатное продление истёкших сертификатов.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Проверка и штатное продление истёкших сертификатов. Не используйте --force-renewal без причины.
    sudo certbot renew --dry-run
    sudo certbot renew

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

    Вариант 4Выберите команду только для своего веб-сервера.
    Linux · Терминал (Bash)КомандаНужен sudo
    Выберите команду только для своего веб-сервера. При успешной проверке отдельно выполняют reload соответствующей службы.
    sudo nginx -t
    sudo apache2ctl configtest
    Вариант 5Выпуск сертификата заново (nginx, оба имени)
    Linux · Терминал (Bash)КомандаНужен sudo
    Выпуск сертификата заново (nginx, оба имени)
    sudo certbot --nginx -d example.ru -d www.example.ru
    Вариант 6Проверка штатного расписания продления и состава сертификатов; не создаёт автоматических обработчиков.
    Linux · Терминал (Bash)КомандаНужен sudo
    Проверка штатного расписания продления и состава сертификатов; не создаёт автоматических обработчиков.
    systemctl list-timers | grep -i certbot
    sudo certbot certificates

#Для платных сертификатов

Если сертификат куплен у платного центра сертификации, зайдите в личный кабинет, перевыпустите (reissue) сертификат с тем же или новым CSR. Сформировать CSR и ключ можно командой openssl req -new -newkey rsa:2048 -nodes -keyout example.ru.key -out example.ru.csr. Установите сертификат вместе с промежуточными (цепочкой) в один файл fullchain.pem: сначала сертификат сайта, потом промежуточные.

#Мониторинг

Настройте уведомления: сервисы вроде UptimeRobot (https://uptimerobot.com/) проверяют срок сертификата и присылают письмо за 14 и 7 дней. Скрипт для проверки: openssl x509 -checkend 1209600 -noout вернёт код 1, если сертификат закончится менее чем через 14 дней; его можно запускать по cron и отправлять письмо.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.