Давайте зашифруем
До 2015 года каждый сертификат TLS стоил денег — часто сотни долларов в год — и процесс выдачи представлял собой многоэтапную рутинную работу. Бета-версия Let's Encrypt вышла в конце 2015 года с единственным предложением: бесплатные, автоматизированные, 90-дневные сертификаты без участия человека. Десять лет спустя он выпустил более четырех миллиардов сертификатов и фактически сделал возможным универсальный протокол HTTPS.
Полный текст статьи на английском языке представлен ниже.
Let's Encrypt — это центр сертификации, управляемый Группой исследований интернет-безопасности (ISRG), некоммерческой организацией США 501(c)(3), финансируемой такими спонсорами, как Mozilla, EFF, Cisco, Akamai и многими другими. Ее миссия — сделать шифрование интернет-трафика общедоступным — и по всем разумным меркам ей это удалось.
Цифры
LМасштаб Let's Encrypt ошеломляет:
- Активные сертификаты: ~430 миллионов на конец 2025 года
- Защищенные домены: ~325 миллион
- Срок действия выданных сертификатов: ~6 миллиардов с момента запуска
- Операционные затраты: менее 5 миллионов долларов США в год
- Численность персонала: около 25 сотрудников
Для контекста Let's Encrypt выдает больше сертификатов, чем любой другой центр сертификации вместе взятый, и является крупнейшим центром сертификации по объему выдачи за лет.
Протокол ACME
Техническая инновация, сделавшая возможным использование Let's Encrypt, — это ACME (среда автоматического управления сертификатами), протокол для полностью автоматизированной выдачи сертификатов. Стандарт ACME, стандартизированный в 2019 году как RFC 8555, определяет, как клиент запрашивает сертификат, доказывает контроль над доменом и загружает выданный сертификат — и все это без участия человека. один или несколько доменов.
Весь процесс занимает 10–60 секунд.
Три типа запроса
- HTTP-01: Клиент помещает определенный файл в папку
http://example.com/.well-known/acme-challenge/<токен>. Центр сертификации извлекает его и проверяет содержимое. Требуется управление веб-сервером через порт 80. - DNS-01: Клиент добавляет запись TXT с определенным значением в
_acme-challenge.example.com. Центр сертификации запрашивает DNS и проверяет. Требуется для сертификатов с подстановочными знаками и полезен, когда порт 80 недоступен. - TLS-ALPN-01: Клиент обслуживает определенный сертификат во время подтверждения TLS на порту 443 с помощью протокола
acme-tls/1ALPN. Центр сертификации инициирует соединение TLS и проверяет его. Полезно, когда порты 80 и DNS ограничены.
Общие клиентские инструменты
- certbot — эталонный клиент EFF, широкая экосистема плагинов, на основе Python, используется по умолчанию для большинства серверов admins.
- acme.sh — чистый скрипт оболочки, минимальные зависимости, работает на маршрутизаторах и встроенных системах.
- Caddy — веб-сервер со встроенным ACME; управление сертификатами не требуется, просто настройте домен.
- Traefik, nginx-ingress, AWS ACM, Cloudflare — многие платформы изначально интегрируют ACME, поэтому пользователи вообще не видят сертификаты.
Почему 90-дневные сертификаты
LПроблемы с Let's Encrypt Сертификаты на 90 дней, при этом клиенты обычно продлевают их по истечении 60 дней. Короткий срок жизни:
- Ограничить ущерб от компрометации закрытых ключей
- Принудительно автоматизировать продление, что означает, что продления фактически происходят по расписанию
- Сделать отзыв менее важным (срок действия скомпрометированного сертификата в любом случае скоро истечет)
В отрасли в целом наблюдается тенденция к более короткому сроку действия — серьезному браузеры теперь ограничивают срок действия коммерческих сертификатов 397 днями, а предложения по 90-дневным или 47-дневным коммерческим сертификатам находятся на стадии обсуждения.
Чего Let's Encrypt не делает
- Расширенная проверка. Let's Encrypt выполняет только проверку домена. Если вам нужен сертификат EV с юридическим названием вашей организации, вам нужны коммерческие сертификаты CA.
- Code для подписи. Различные хранилища доверенных сертификатов, разные процедуры.
- S/MIME сертификаты электронной почты. Также разные — только Let's Encrypt TLS.
- Поддержка по телефону. Только самообслуживание; форумы сообщества для помощи. В противном случае экономика бесплатности не работала бы.
Воздействие
До внедрения Let's Encrypt внедрение HTTPS колебалось в пределах 30% загрузок страниц. К 2020 году он превысил 80%. Сегодня этот показатель значительно превышает 95%. Браузеры теперь помечают HTTP-сайты как небезопасные именно потому, что стоимость перехода на HTTPS упала до нуля. Подавляющее большинство новых сайтов, блогов, сторонних проектов и внутренних инструментов, которые сегодня поставляются с HTTPS, делают это, потому что Let's Encrypt выбрала путь наименьшего сопротивления.
Миссия не совсем завершена — некоторые устаревшие сервисы все еще используют HTTP, некоторые регионы и интернет-провайдеры отстают — но Интернет является значительно более безопасным местом, потому что одна некоммерческая организация решила, что сертификаты должны быть бесплатными.
Часто задаваемые вопросы
- Действительно ли Let's Encrypt полностью бесплатен?
- Да, для сертификатов. ISRG принимает пожертвования и корпоративное спонсорство для финансирования операций. Никаких уровней, дополнительных продаж и комиссий за любую функцию нет. Затраты несут спонсоры и доноры, поэтому более широкий Интернет получает HTTPS без каких-либо предельных затрат.
- Сертификаты Let’s Encrypt так же безопасны, как платные?
- Криптография идентична — каждый центр сертификации в программе с открытым корнем использует одни и те же стандарты TLS. Сертификаты Let's Encrypt принимаются всеми современными браузерами. Различия заключаются в уровне проверки (только DV) и оперативной поддержке, а не в уровне безопасности.
- Как часто мне придется продлевать?
- На практике каждые 60 дней клиенты продлевают сертификат, когда остается срок действия сертификата 30 дней. Вся суть ACME в том, что это автоматизировано, поэтому обновление происходит незаметно для вас. Если ваш клиент выйдет из строя, вы получите электронное письмо от Let's Encrypt об истечении срока действия и 20 дней на устранение проблемы.
- Может ли веб-сайт лгать о своей безопасности с помощью Let’s Encrypt?
- Фишинговый сайт может получить сертификат Let's Encrypt для своего собственного домена — каждый центр сертификации выдает сертификат любому, кто может доказать контроль над доменом. Сертификат доказывает, что сайт соответствует его URL-адресу, а не подтверждает, что сайт заслуживает доверия. Проверка домена всегда подразумевала это, и доступность Let's Encrypt не изменила этого.
- Что произойдет, если ключ CA Let's Encrypt будет скомпрометирован?
- Запланированный ответ включает в себя создание новых корней в автономном режиме (у ISRG есть несколько корней и промежуточных сертификатов), повторный выпуск сертификатов в новой цепочке и координацию действий с браузерами для добавления новых корней и исключения доверия к старым. ISRG провела практические прогоны этого сценария. Реальный инцидент по-прежнему будет иметь огромные разрушительные последствия, но его можно будет устранить в течение недель, а не лет.