Сертификат подтверждает, что домен принадлежит вам, и делает возможным HTTPS. У него всегда есть срок действия — и в день его окончания сайт перестаёт открываться для всех.
Что видит посетитель, когда срок вышел
Не страницу, а предупреждение на весь экран: «Подключение не защищено», «Сертификат сайта недействителен». Продолжить можно, но кнопка спрятана за «Дополнительно», и большинство людей просто уходит.
Хуже, если включён HSTS: тогда кнопки «всё равно перейти» вообще нет, сайт недоступен полностью.
Поисковый робот при этом фиксирует недоступность сайта, и при затяжной проблеме страницы начинают выпадать из индекса.
Сроки
Let's Encrypt и другие бесплатные центры выдают сертификаты на 90 дней. Это сделано намеренно: короткий срок вынуждает настроить автоматику, а автоматика надёжнее человека, который «продлит в следующем месяце».
Платные сертификаты выдаются максимум на год (раньше было до трёх лет). Отраслевые правила движутся к дальнейшему сокращению сроков, так что ручное продление в любом случае перестаёт быть вариантом.
Автопродление
Certbot — стандартный инструмент для Let's Encrypt. При установке он сам заводит задачу продления; проверить её работу можно вхолостую:
sudo certbot renew --dry-run
Команда пройдёт весь путь продления без выпуска и покажет, где что сломается.
Панели хостинга (ISPmanager, cPanel, панели облачных провайдеров) обычно продлевают сами — нужно лишь убедиться, что галочка автопродления включена.
CDN и прокси вроде Cloudflare выпускают и продлевают сертификат за вас, но помните: тогда шифруется только участок «посетитель — CDN». Между CDN и вашим сервером нужен свой сертификат.
Почему автопродление ломается
- Изменились правила веб-сервера, и проверочный запрос к
/.well-known/acme-challenge/больше не проходит — самая частая причина. - Домен переехал на другой IP или другие DNS-серверы, а конфигурация осталась старой.
- Задача продления отключилась при обновлении системы или переносе сервера.
- Изменился набор доменов в сертификате: добавили поддомен, а в конфигурацию продления его не внесли.
Отсюда правило: настроенное автопродление стоит проверять — раз в квартал команды certbot renew --dry-run достаточно.
Мониторинг
Не полагайтесь только на письма от центра сертификации: они уходят на адрес, указанный при выпуске, а его нередко никто не читает. Надёжнее внешний мониторинг, который проверяет срок и пишет в мессенджер за две недели до окончания.
Наш инструмент проверяет срок при каждом аудите: пункт «SSL-сертификат» показывает, сколько дней осталось, и переходит в предупреждение, когда остаётся меньше двух недель.
Как проверить вручную
echo | openssl s_client -connect example.ru:443 2>/dev/null | openssl x509 -noout -dates
В браузере — нажмите на замочек в адресной строке: там указано, кем выдан сертификат и до какого числа он действителен.
Что ещё проверить кроме срока
- Дату оплаты домена. Вторая дата, из-за которой сайты выключаются в один день (возраст и срок домена).
- Совпадение имени. Сертификат должен покрывать и
example.ru, иwww.example.ru(про зеркала). - Полную цепочку. Сервер обязан отдавать не только свой сертификат, но и промежуточные. Браузеры часто прощают их отсутствие, а мобильные приложения и внешние сервисы — нет.
- Версию протокола. TLS 1.2 и 1.3; устаревшие TLS 1.0/1.1 и SSL 3.0 нужно отключить.