Коротко: что делать, если истёк SSL-сертификат
Если истёк SSL-сертификат, что делать — вопрос на сегодня, а не на завтра. Нужно выпустить новый сертификат или продлить старый и установить его туда, где он стоял: на хостинг, на сервер или в CDN. Бесплатный сертификат Let's Encrypt почти на любом хостинге перевыпускается одной кнопкой в панели. Платный продлевают у того, кто его продал, и потом ставят на сервер.
Пока сертификата нет, сайт для посетителей фактически закрыт. Браузер показывает красное предупреждение, и до сайта доходят только самые упорные. Поэтому сначала чиним, а причину разбираем потом.
Браузер пишет «Соединение не защищено»: почему так происходит
SSL-сертификат (правильнее — TLS, но название SSL прижилось) подтверждает браузеру две вещи. Во-первых, сайт действительно ваш. Во-вторых, данные между посетителем и сервером шифруются. Каждый сертификат выдаётся на ограниченный срок. Когда срок кончается, браузер перестаёт ему доверять.
Посетитель видит одно из таких сообщений:
- Chrome и Яндекс Браузер: «Подключение не защищено» и код
NET::ERR_CERT_DATE_INVALID - Firefox: «Предупреждение: вероятная угроза безопасности» и код
SEC_ERROR_EXPIRED_CERTIFICATE - Safari: «Это соединение не является конфиденциальным»
Похожее предупреждение бывает и по другим причинам. Например, сертификат выпущен на другой домен или часы на компьютере посетителя сбиты. Точную причину покажет код ошибки: в нём есть слово DATE или EXPIRED — значит, истёк срок.
Чем грозит просроченный сертификат
Кажется, что это просто неприятная табличка. На деле последствия ощутимее:
- Посетители уходят. Большинство людей закрывают вкладку, увидев красный экран, и идут к конкуренту.
- Формы и оплата ломаются. Платёжные системы, виджеты и API обычно отказываются работать с сайтом, у которого просрочен сертификат.
- Перестают работать интеграции. Вебхуки из CRM, уведомления от эквайринга, мобильное приложение — всё, что обращается к сайту по HTTPS, начинает падать с ошибками.
- Поисковики это замечают. Если сайт долго отдаёт ошибку сертификата, робот не может его нормально обойти. Для позиций это плохой сигнал.
- Страдает доверие. Слова «ваше соединение не защищено» клиенты запоминают надолго.
Есть и неприятная деталь. Если на сайте включён HSTS — заголовок, который требует от браузера заходить только по HTTPS, — то кнопки «всё равно перейти» у посетителя не будет вовсе.
Пошагово: как продлить сертификат
Если сертификат бесплатный (Let's Encrypt и аналоги)
- Зайдите в панель хостинга: ISPmanager, cPanel, Plesk или собственную панель провайдера.
- Найдите раздел «SSL-сертификаты» или «Безопасность».
- Удалите просроченный сертификат или нажмите «Перевыпустить» у нужного домена. Проверьте, что в сертификат попадут и
site.ru, иwww.site.ru. - Подождите несколько минут. Обычно сертификат выпускается и встаёт на сайт сам.
- Откройте сайт в режиме инкогнито и проверьте замок в адресной строке.
Если сервер свой и сертификат ставили через certbot, достаточно выполнить sudo certbot renew. Потом перезагрузите веб-сервер: sudo systemctl reload nginx или apache2.
Если сертификат платный
- Зайдите в кабинет того, у кого покупали: регистратор, хостинг или реселлер удостоверяющего центра.
- Оплатите продление и заново подтвердите владение доменом. Обычно для этого нужно письмо на почту домена или запись в DNS.
- Скачайте новый сертификат вместе с цепочкой промежуточных сертификатов.
- Установите его на сервер или загрузите в панель хостинга.
- Проверьте сайт в нескольких браузерах.
Частая ошибка — поставить сам сертификат, а цепочку забыть. На компьютере всё открывается, а на части телефонов вылетает ошибка. Поэтому после установки проверьте сайт внешним сервисом, а не только своим браузером.
Если сайт за CDN или прокси
Если трафик идёт через Cloudflare, CDN хостинга или балансировщик, сертификатов часто два: один на CDN, другой на вашем сервере. Истечь может любой из них. Проверьте оба, иначе будете чинить не тот.
Как проверить SSL-сертификат сайта
Проверить сертификат можно тремя способами, от простого к точному.
- В браузере. Нажмите на значок слева от адреса, выберите «Безопасное подключение», затем «Сертификат действителен». Там указаны даты «Действителен с» и «Действителен до».
- Онлайн-сервисом. Сервисы вроде SSL Labs показывают срок, цепочку, поддерживаемые протоколы и ошибки установки. Разбор занимает минуту-две.
- Из командной строки. Команда
echo | openssl s_client -connect site.ru:443 -servername site.ru 2>/dev/null | openssl x509 -noout -datesвыводит дату окончания. Её удобно вставлять в собственные скрипты проверки.
Одна разовая проверка от повторения не спасёт. Нужно, чтобы кто-то напомнил за пару недель до конца срока. В кабинете ARTGK Code это входит в проверку здоровья сайта: сервис следит за сроком сертификата вместе с аптаймом и скоростью и заранее предупреждает, что срок подходит к концу.
Автопродление SSL: настроить один раз и забыть
Сертификаты живут всё меньше. Let's Encrypt выдаёт их на 90 дней. Отраслевые правила постепенно сокращают максимальный срок и для платных сертификатов. Продлевать руками становится всё неудобнее, поэтому автоматика уже нужна по-настоящему.
На хостинге
В большинстве панелей у бесплатного сертификата есть галочка «Автоматически продлевать». Проверьте, что она включена. Ещё важнее, чтобы домен смотрел на этот хостинг. Если DNS переносили, а сертификат остался на старом месте, продление тихо сломается.
На своём сервере
- Убедитесь, что таймер или крон certbot работает:
systemctl list-timers | grep certbotилиcrontab -l. - Прогоните пробное продление:
sudo certbot renew --dry-run. Если в выводе нет ошибок, автопродление живое. - Добавьте хук, который перезагружает веб-сервер после продления:
--deploy-hook "systemctl reload nginx". Без него новый сертификат лежит на диске, а nginx продолжает отдавать старый. - Проверьте, что порт 80 открыт или DNS-проверка настроена. Иначе удостоверяющий центр не сможет подтвердить домен.
Почему автопродление всё равно ломается
- Сменили хостинг или IP-адрес, а старый сервер продолжает «продлевать» в пустоту.
- Закрыли порт 80 «ради безопасности» и тем самым сломали проверку домена.
- Сертификат продлился, но веб-сервер не перезагрузили.
- Истекла карта, привязанная к платному сертификату.
- Письма о подтверждении домена уходят на ящик, который никто не читает.
Автопродление без мониторинга — как пожарная сигнализация без батарейки. Вроде висит, но проверять всё равно надо.
Если чинить самому некогда
Бывает, что панели хостинга нет, доступы остались у бывшего подрядчика, а сайт висит на сервере, о котором никто ничего не помнит. Тогда быстрее отдать задачу специалисту. В ARTGK Code такую работу можно заказать из кабинета по часовой ставке 3 500 ₽/час. Если заодно нужно переехать на нормальный хостинг, есть услуга «перенос и настройка хостинга» за 9 900 ₽.
Сертификат, который истёк один раз, почти наверняка истечёт и снова, если ничего не поменять. Самое дешёвое решение — чтобы за сроком следила система, а не человек с напоминалкой в календаре. Добавьте сайт в ARTGK Code: бесплатная проверка здоровья покажет, когда кончается сертификат, правильно ли он установлен и что ещё на сайте требует внимания.
Проверьте свой сайт бесплатно
Здоровье, SEO, видимость в AI-поиске и юридические риски — четыре проверки в одном кабинете. Без карты, вход по коду из письма.
Проверить сайт — бесплатно