Глоссарий
Что такое Let's Encrypt — бесплатный CA, который автоматизирует HTTPS
Let's Encrypt — бесплатный CA, выдающий сертификаты TLS/SSL. ACME автоматически проверяет контроль над доменом, поэтому выпуск и продление идут без участия человека; срок 90 дней принуждает к автоматизации. Как это работает (certbot/Caddy) и как избежать инцидента №1 — заглохшего продления с истёкшим сертификатом.
«Хочу HTTPS, но сертификаты кажутся дорогими и муторными» — Let's Encrypt изменил эту предпосылку. Он бесплатен, а весь путь от выпуска до продления можно полностью автоматизировать. Вот как это работает с точки зрения защищающегося.
Как это работает: доказательство контроля над доменом, автоматически (ACME)
Раньше сертификаты означали подачу заявки, отправку документов о личности и ожидание — всё вручную. Let's Encrypt заменяет это на ACME (Automatic Certificate Management Environment) — протокол, превращающий весь обмен в шаги «машина с машиной».
Ключевой момент: проверяется только контроль над доменом (Domain Validation, DV). Юридическое существование компании не проверяется — именно поэтому процесс достаточно лёгок, чтобы полностью автоматизироваться. Само шифрование при этом не слабее, чем у платного сертификата.
Срок в 90 дней принуждает к автоматизации
Сертификаты Let's Encrypt действуют 90 дней. Короткое окно — намеренное.
Сузить радиус поражения от утёкшего ключа
Если приватный ключ сервера когда-либо утечёт, короткоживущий сертификат сужает окно, в котором им можно злоупотреблять — и даже если отзыв запаздывает, он истекает сам собой.
Сделать автоматическое продление нормой
90 дней непрактично продлевать вручную, поэтому операторам приходится автоматизировать — что подтолкнуло всю отрасль к мысли «сертификаты — это то, что ротируют автоматически». На практике инструменты продления начинают пытаться примерно за 30 дней до истечения.
Значит, настоящая работа — это мониторинг
Автоматическое продление может тихо остановиться — сломанный cron, изменённые права, проверка домена, которая больше не проходит. Если не заметить, через 90 дней сертификат истечёт. Защитная привычка — следить за успешностью продления и числом оставшихся дней.
Наш взгляд: мы сами работаем именно так (автоматический TLS)
Этот сайт работает на веб-сервере Caddy, который выпускает и продлевает сертификаты Let's Encrypt автоматически, стоит лишь направить на него домен (настройки сертификата практически нет). Цель — «не думать о сертификатах»: чем меньше мест, где человек прикасается вручную, тем меньше инцидентов с истечением из-за забытой замены. Если же вы запускаете certbot по cron, безопасный ход — следить, действительно ли этот cron ещё работает, а не просто верить, что да.
Инцидент №1: заглохшее продление, а затем истечение
То, на что команды чаще всего натыкаются вокруг HTTPS, — это не атака, а истёкший сертификат. При истечении браузер выдаёт полноэкранное предупреждение, и посетители почти всегда уходят. Причина почти всегда — «автоматизация продления сломалась, и никто не заметил».
Именно поэтому стоит иметь способ периодически смотреть на срок истечения собственного сертификата. Аудит безопасности сайта этого сайта проверяет TLS-сертификат (оставшиеся дни, срок истечения, устаревшие протоколы) на сайте, владение которым вы подтвердили, наряду с остальными проверками. Автоматизируйте продление, а затем проверяйте снаружи, что автоматизация жива — эта двухслойная привычка почти полностью предотвращает инциденты с истечением.
Читать дальше
- Урок из инцидента: Heartbleed (изъян TLS/OpenSSL, угрожавший ключам по всему миру)
- Проверьте свой сайт: аудит безопасности сайта (TLS-сертификат, заголовки, открытые файлы в одном отчёте)
- Заложите фундамент: базовый чек-лист безопасности для инди-разработчиков
FAQ
QLet's Encrypt действительно бесплатный, и чем он отличается от платного сертификата?
Выпуск и продление полностью бесплатны. Let's Encrypt делает только Domain Validation (DV) — автоматически проверяет, что домен под вашим контролем. Стойкость шифрования идентична платному сертификату, и браузеры показывают тот же замочек. Отличие в том, что нет шага Organization/Extended Validation (OV/EV), который проверяет юридическую личность компании, и нет страховой гарантии. Для личных сайтов и небольших сервисов бесплатного DV-сертификата почти всегда достаточно, чтобы отдавать HTTPS.
QПочему сертификаты действуют всего 90 дней? Разве это не хлопотно?
Короткий срок — это сознательный выбор, а не слабость. Он ограничивает, как долго можно злоупотреблять утёкшим приватным ключом, и насаждает культуру, где продление автоматизировано. Чтобы избежать хлопот, продление автоматизируют (большинство инструментов начинают продлевать примерно за 30 дней до истечения). Настоящая опасность — обратная: менять сертификаты вручную раз в год, а потом забыть и дать одному истечь.
QКакими инструментами это настраивают?
Распространённые — certbot (широко используется с Apache/Nginx) и Caddy (веб-сервер, который отдаёт HTTPS и автоматически продлевает сертификаты без какой-либо их настройки). С ACME также работают acme.sh и Traefik. Если нужен wildcard-сертификат (*.example.com), его получают методом DNS-01, помещая проверочное значение в DNS-запись.