Ошибки

NET::ERR_CERT_DATE_INVALID: что значит и как исправить

NET::ERR_CERT_DATE_INVALID — Chrome считает, что сертификат сайта сейчас не действует: его срок истёк или ещё не начался. Причина бывает на стороне сайта — сертификат не продлили — или на стороне посетителя: на устройстве неверные дата и время.

Обновлено 08.10.2026≈ 8 мин чтения
Содержание 10

Что сделать прямо сейчас

Если вы просто открываете сайт:

  1. Посмотрите на дату и время на своём устройстве. Если они неверные, включите автоматическую установку времени — как это сделать, показано ниже, — и откройте сайт заново.
  2. Если дата и время верные, а ошибка только на этом сайте, у его сертификата, скорее всего, истёк срок. Сообщите владельцу сайта код ошибки — NET::ERR_CERT_DATE_INVALID.
  3. Пока предупреждение не исчезнет, не вводите на сайте пароли и данные банковских карт.

Если сайт ваш, переходите к разделам «Как проверить» и «Как исправить» ниже: там все команды по шагам.

Как включить автоматическую дату и время

Windows. Нажмите «Пуск» и откройте «Параметры» → «Время и язык» → «Дата и время». Включите «Установить время автоматически» и «Автоматическая установка часового пояса».

Mac. Откройте «Системные настройки» — они есть в меню Apple, значке яблока в левом верхнем углу экрана. Нажмите «Основные» в боковом меню, затем «Дата и время» — возможно, придётся прокрутить вниз. Включите «Получать дату и время с сервера» и «Автоматически выбирать часовой пояс в зависимости от текущей геопозиции».

iPhone. Откройте «Настройки» → «Основные» → «Дата и время» и включите «Устанавливать время автоматически».

Android. По справке Google это делается в приложении «Часы»: откройте его, нажмите «Ещё» → «Настройки» → «Изменить дату и время» и включите «Автоматическое определение даты и времени». Там же, в разделе «Часовой пояс», включите «Автоматическое определение часового пояса» — по справке Google, такая настройка есть не на всех устройствах. Если на телефоне другое приложение часов, пункты могут называться иначе.

Что значит ошибка

У каждого SSL-сертификата — электронного документа, которым сайт подтверждает браузеру, что он настоящий, — есть срок действия: дата начала и дата окончания. Chrome сравнивает их с датой и временем на устройстве. Если срок закончился или ещё не начался, он показывает NET::ERR_CERT_DATE_INVALID — в исходном коде Chrome это ошибка -201.

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

Сертификаты Let's Encrypt действуют 90 дней, и Let's Encrypt советует продлевать их каждые 60 дней. Если продление не сработало, сертификат истекает и ошибку видят все посетители сайта.

Как выглядит в Chrome

Страница такая же, как при других ошибках сертификата: вкладка «Ошибка нарушения конфиденциальности», заголовок «Подключение не защищено», код NET::ERR_CERT_DATE_INVALID и кнопки «Вернуться к безопасной странице» и «Дополнительные настройки».

В пояснении под «Дополнительными настройками» Chrome пишет, сколько дней назад истёк срок сертификата, показывает дату, которая стоит на устройстве, и спрашивает, правильное ли это время. Если нет, он советует исправить его и обновить страницу. Если сертификат ещё не начал действовать, Chrome пишет, через сколько дней это произойдёт.

Если на устройстве неправильная дата, Chrome может показать вместо этого страницу с заголовком «Часы спешат» или «Часы отстают».

Причины

  • Сертификат не продлился. Например, он получен с ключом --manual — такие сертификаты Certbot без дополнительных скриптов не продлевает. Или перестал открываться сайт по http://: A-запись домена ведёт на другой сервер или закрыт порт 80, а через него Certbot подтверждает домен.
  • Сертификат продлён, но nginx отдаёт старый. nginx читает файл сертификата, когда загружает настройки. Пока настройки не перезагружены, посетители получают прежний сертификат.
  • На устройстве посетителя неверные дата и время. Тогда ошибка появляется на многих сайтах сразу.
  • Злоумышленник подсовывает старый сертификат, к закрытому ключу которого получил доступ.

Как проверить

Команды из этого раздела вводятся в терминале сервера. Если вы ещё не подключались к нему, начните с инструкции Как подключиться к VPS по SSH. Скопируйте команду целиком, замените example.com на адрес своего сайта и нажмите Enter.

Шаг 1. Посмотрите срок действия сертификата

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates

Ответ — две строки: notBefore — с какого момента действует сертификат, notAfter — до какого. Время указано по Гринвичу (GMT), московское на 3 часа больше. Если дата в notAfter уже прошла, срок сертификата истёк.

Шаг 2. Посмотрите сертификаты Certbot

sudo certbot certificates

В строке Expiry Date — дата окончания и в скобках состояние сертификата. Например, VALID: 45 days значит, что он действует ещё 45 дней, а INVALID: EXPIRED — что срок истёк. Если здесь срок в порядке, а в шаге 1 дата уже прошла, сертификат продлён, но nginx его ещё не подхватил: перезагрузите nginx, как описано ниже.

Шаг 3. Проверьте, работает ли автоматическое продление

sudo certbot renew --dry-run

Это пробное продление: Certbot проходит все шаги, но новый сертификат не сохраняет. Если всё в порядке, в конце будет строка Congratulations, all simulated renewals succeeded. Если там All simulated renewals failed, выше Certbot пишет, какой сертификат продлить не удалось и почему.

Затем проверьте, есть ли на сервере таймер, который запускает продление:

systemctl list-timers | grep certbot

Если команда вывела строку со словом certbot, таймер есть. Если ничего не вывела, продление может быть настроено иначе, например через cron, — или не настроено совсем. Тогда получите сертификат заново по инструкции Бесплатный SSL-сертификат.

Как исправить

Продлите сертификат

sudo certbot renew

Certbot продлевает сертификаты, у которых подходит срок: начиная с версии 4.0.0 — когда остаётся меньше трети срока действия, в более ранних версиях — за 30 дней до окончания. Домен он подтверждает тем же способом, каким сертификат получали. Если всё прошло успешно, Certbot напишет Congratulations, all renewals succeeded. Сертификаты, которым продление ещё не нужно, он перечислит под строкой The following certificates are not due for renewal yet.

Если продление не удалось, проверьте, что A-запись домена ведёт на этот сервер и сайт открывается по http://. Что такое A-запись, рассказано в статье Что такое домен. Сертификат, полученный с ключом --manual, так не продлить: получите его заново той же командой, которой получали в первый раз.

Перезагрузите nginx

sudo nginx -t
sudo systemctl reload nginx

Первая команда проверяет настройки: в ответе должны быть слова syntax is ok и test is successful. Вторая применяет их — nginx заново прочитает файл сертификата. Выполняйте её только после успешной проверки. Затем повторите команду из шага 1: в строке notAfter должна появиться новая дата.

Чтобы nginx подхватывал новый сертификат сам

После каждого успешного продления Certbot запускает исполняемые файлы из папки /etc/letsencrypt/renewal-hooks/deploy — такие файлы называют хуками. Создайте там файл, который перезагружает nginx. Введите три команды по очереди:

sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy
printf '#!/bin/sh\nsystemctl reload nginx\n' | sudo tee /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

Первая создаёт папку, если её ещё нет. Вторая записывает в файл reload-nginx.sh команду перезагрузки nginx и показывает содержимое файла на экране. Третья разрешает этот файл запускать.

Проверьте, что всё работает:

sudo certbot renew --dry-run --run-deploy-hooks

С ключом --run-deploy-hooks Certbot после успешного пробного продления запускает и хуки. Если в конце строка Congratulations, all simulated renewals succeeded и нет сообщений об ошибках, всё настроено.

На обычном хостинге

На виртуальном хостинге сертификат продлевает хостинг. Проверьте в панели управления, в разделе об SSL, до какого числа действует сертификат и включено ли автоматическое продление. Если срок истёк, а продлить сертификат в панели не получается, напишите в поддержку адрес сайта и код ошибки.

Соседние ошибки

ОшибкаЧем отличается
NET::ERR_CERT_COMMON_NAME_INVALIDСертификат выдан для другого имени сайта
NET::ERR_CERT_AUTHORITY_INVALIDChrome не доверяет тому, кто выпустил сертификат, — например, сертификат самоподписанный
NET::ERR_CERT_REVOKEDЦентр сертификации отозвал сертификат до окончания срока
«Подключение не защищено»Общая страница о предупреждении и всех кодах ошибок сертификата

Источники

Текст предупреждения взят из исходного кода и переводов Chrome.

Сверено 8 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 08.10.2026