ARTGK Code

Истёк SSL-сертификат: что делать, чтобы сайт снова открывался

Если истёк SSL-сертификат, его нужно перевыпустить или продлить и установить на сервер. Обычно это занимает от пятнадцати минут до пары часов. Потом стоит настроить автопродление, чтобы история не повторилась.

23.09.20267 мин чтенияSSLбезопасность сайтахостинг

Коротко: что делать, если истёк SSL-сертификат

Если истёк SSL-сертификат, что делать — вопрос на сегодня, а не на завтра. Нужно выпустить новый сертификат или продлить старый и установить его туда, где он стоял: на хостинг, на сервер или в CDN. Бесплатный сертификат Let's Encrypt почти на любом хостинге перевыпускается одной кнопкой в панели. Платный продлевают у того, кто его продал, и потом ставят на сервер.

Пока сертификата нет, сайт для посетителей фактически закрыт. Браузер показывает красное предупреждение, и до сайта доходят только самые упорные. Поэтому сначала чиним, а причину разбираем потом.

Браузер пишет «Соединение не защищено»: почему так происходит

SSL-сертификат (правильнее — TLS, но название SSL прижилось) подтверждает браузеру две вещи. Во-первых, сайт действительно ваш. Во-вторых, данные между посетителем и сервером шифруются. Каждый сертификат выдаётся на ограниченный срок. Когда срок кончается, браузер перестаёт ему доверять.

Посетитель видит одно из таких сообщений:

Похожее предупреждение бывает и по другим причинам. Например, сертификат выпущен на другой домен или часы на компьютере посетителя сбиты. Точную причину покажет код ошибки: в нём есть слово DATE или EXPIRED — значит, истёк срок.

Чем грозит просроченный сертификат

Кажется, что это просто неприятная табличка. На деле последствия ощутимее:

Есть и неприятная деталь. Если на сайте включён HSTS — заголовок, который требует от браузера заходить только по HTTPS, — то кнопки «всё равно перейти» у посетителя не будет вовсе.

Пошагово: как продлить сертификат

Если сертификат бесплатный (Let's Encrypt и аналоги)

  1. Зайдите в панель хостинга: ISPmanager, cPanel, Plesk или собственную панель провайдера.
  2. Найдите раздел «SSL-сертификаты» или «Безопасность».
  3. Удалите просроченный сертификат или нажмите «Перевыпустить» у нужного домена. Проверьте, что в сертификат попадут и site.ru, и www.site.ru.
  4. Подождите несколько минут. Обычно сертификат выпускается и встаёт на сайт сам.
  5. Откройте сайт в режиме инкогнито и проверьте замок в адресной строке.

Если сервер свой и сертификат ставили через certbot, достаточно выполнить sudo certbot renew. Потом перезагрузите веб-сервер: sudo systemctl reload nginx или apache2.

Если сертификат платный

  1. Зайдите в кабинет того, у кого покупали: регистратор, хостинг или реселлер удостоверяющего центра.
  2. Оплатите продление и заново подтвердите владение доменом. Обычно для этого нужно письмо на почту домена или запись в DNS.
  3. Скачайте новый сертификат вместе с цепочкой промежуточных сертификатов.
  4. Установите его на сервер или загрузите в панель хостинга.
  5. Проверьте сайт в нескольких браузерах.

Частая ошибка — поставить сам сертификат, а цепочку забыть. На компьютере всё открывается, а на части телефонов вылетает ошибка. Поэтому после установки проверьте сайт внешним сервисом, а не только своим браузером.

Если сайт за CDN или прокси

Если трафик идёт через Cloudflare, CDN хостинга или балансировщик, сертификатов часто два: один на CDN, другой на вашем сервере. Истечь может любой из них. Проверьте оба, иначе будете чинить не тот.

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

Проверить сертификат можно тремя способами, от простого к точному.

Одна разовая проверка от повторения не спасёт. Нужно, чтобы кто-то напомнил за пару недель до конца срока. В кабинете ARTGK Code это входит в проверку здоровья сайта: сервис следит за сроком сертификата вместе с аптаймом и скоростью и заранее предупреждает, что срок подходит к концу.

Автопродление SSL: настроить один раз и забыть

Сертификаты живут всё меньше. Let's Encrypt выдаёт их на 90 дней. Отраслевые правила постепенно сокращают максимальный срок и для платных сертификатов. Продлевать руками становится всё неудобнее, поэтому автоматика уже нужна по-настоящему.

На хостинге

В большинстве панелей у бесплатного сертификата есть галочка «Автоматически продлевать». Проверьте, что она включена. Ещё важнее, чтобы домен смотрел на этот хостинг. Если DNS переносили, а сертификат остался на старом месте, продление тихо сломается.

На своём сервере

  1. Убедитесь, что таймер или крон certbot работает: systemctl list-timers | grep certbot или crontab -l.
  2. Прогоните пробное продление: sudo certbot renew --dry-run. Если в выводе нет ошибок, автопродление живое.
  3. Добавьте хук, который перезагружает веб-сервер после продления: --deploy-hook "systemctl reload nginx". Без него новый сертификат лежит на диске, а nginx продолжает отдавать старый.
  4. Проверьте, что порт 80 открыт или DNS-проверка настроена. Иначе удостоверяющий центр не сможет подтвердить домен.

Почему автопродление всё равно ломается

Автопродление без мониторинга — как пожарная сигнализация без батарейки. Вроде висит, но проверять всё равно надо.

Если чинить самому некогда

Бывает, что панели хостинга нет, доступы остались у бывшего подрядчика, а сайт висит на сервере, о котором никто ничего не помнит. Тогда быстрее отдать задачу специалисту. В ARTGK Code такую работу можно заказать из кабинета по часовой ставке 3 500 ₽/час. Если заодно нужно переехать на нормальный хостинг, есть услуга «перенос и настройка хостинга» за 9 900 ₽.

Сертификат, который истёк один раз, почти наверняка истечёт и снова, если ничего не поменять. Самое дешёвое решение — чтобы за сроком следила система, а не человек с напоминалкой в календаре. Добавьте сайт в ARTGK Code: бесплатная проверка здоровья покажет, когда кончается сертификат, правильно ли он установлен и что ещё на сайте требует внимания.

Проверьте свой сайт бесплатно

Здоровье, SEO, видимость в AI-поиске и юридические риски — четыре проверки в одном кабинете. Без карты, вход по коду из письма.

Проверить сайт — бесплатно