ADG Оставить заявку
Блог Информационная безопасность 4 мин чтения

Let's Encrypt: EFF и Mozilla объявили о бесплатных TLS-сертификатах через ACME

Ноябрь 2014: EFF, Mozilla и исследователи Michigan объявили инициативу Let's Encrypt - бесплатный CA с автоматизированной выдачей сертификатов по ACME-протоколу.

Контекст момента

В ноябре 2014 EFF совместно с Mozilla, Cisco и исследователями University of Michigan анонсировали Let's Encrypt - новый CA, который будет выдавать бесплатные TLS-сертификаты через автоматизированный ACME-протокол

Несколько дней назад EFF совместно с Mozilla, Cisco и группой исследователей из University of Michigan объявили о проекте Let's Encrypt. Идея простая и при этом звучит почти нереалистично: бесплатный центр сертификации (CA), который выдаёт TLS-сертификаты автоматически, без ручного взаимодействия, по открытому протоколу под названием ACME.

CA пока не работает - это именно анонс. Но анонс достаточно детальный, чтобы разобраться в механике и понять, что это означает на практике.

Почему TLS-сертификаты сейчас стоят денег

Начнём с того, что проблему стоит назвать честно. Сертификат X.509 для HTTPS - это подпись доверенного центра, что вы владеете указанным доменом. Технически это несложная операция. Но коммерческие CA превратили её в платный сервис: DV-сертификат на один домен стоит от нескольких десятков долларов в год, wildcard - в несколько раз дороже. Автоматизации при этом ноль: нужно сгенерировать CSR, пройти верификацию домена по email или через DNS, получить файл, установить вручную, не забыть продлить через год.

У нас в работе десятки серверов клиентов. Сертификаты - это отдельный трек в управлении: кто купил, когда истекает, куда продлевать, в каком проекте. Это не катастрофа, но это время и деньги, которые не несут никакой технической ценности.

Что предлагает ACME

Протокол ACME (Automatic Certificate Management Environment) - это то, что делает Let's Encrypt интересным не как «бесплатный CA», а как принципиально другой подход. Суть:

  • Верификация домена происходит программно - клиент ACME доказывает владение доменом, разместив специальный файл на веб-сервере или в DNS. Никаких писем, никакого ожидания.
  • Выдача сертификата происходит автоматически сразу после верификации - без ручного шага.
  • Продление тоже автоматизировано: клиент запрашивает новый сертификат до истечения текущего. Забытые истёкшие сертификаты становятся технически невозможными.

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

Что это значит для управления сертификатами у клиентов

У нас есть несколько конфигураций, которые сразу приходят в голову как кандидаты на Let's Encrypt, когда CA заработает.

Первый сценарий - внутренние и dev-среды. Сейчас там часто стоят либо самоподписанные сертификаты (с предупреждением браузера), либо вообще HTTP. Платный сертификат для dev-стенда - неоправданно, а без сертификата некоторые вещи не протестируешь. Let's Encrypt снимает этот компромисс.

Второй сценарий - дополнительные домены клиентов. Основной домен с wildcard-сертификатом обычно есть. Но у клиентов бывают дополнительные домены под акции, landing pages, вспомогательные сервисы - для каждого покупать отдельный сертификат никто не торопится. Итог - HTTP там, где мог бы быть HTTPS.

Третий сценарий - автоматизация через Ansible. Если ACME-клиент умеет работать из командной строки (а, судя по описанию, именно так), это встраивается в playbook при развёртывании нового сервера. Сертификат как часть provisioning, не как отдельная ручная задача после.

Что настораживает

Несколько вопросов, которые пока без ответа.

Кросс-подпись и доверие браузеров. Корневой сертификат нового CA должен быть в доверенных хранилищах браузеров и ОС. Let's Encrypt анонсировал кросс-подпись через IdenTrust - это должно обеспечить доверие с первого дня. Посмотрим, насколько это работает на практике с разными браузерами и клиентами.

Ограничения. EV-сертификаты (с зелёной строкой организации) Let's Encrypt выдавать не планирует - только DV. Это нормально для подавляющего большинства случаев, но для банков и платёжных сервисов, где клиенты привыкли видеть название компании в браузере, это пока не замена.

Wildcard. В анонсе про wildcard-сертификаты ничего нет. Один ACME-клиент на один домен или на перечень доменов через SAN - понятно. Wildcard *.example.com - пока не ясно.

Надёжность CA. Платные CA за годы работы с инфраструктурой понятны в плане SLA и процедур отзыва. Let's Encrypt - новая организация. Насколько быстро будет работать OCSP, как будет устроен CRL - посмотрим.

Текущий статус

CA должен начать работу где-то в середине следующего года. Публичный запуск анонсирован, кодовая база клиента будет открытой. Пока - наблюдаем.

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

Для нас это означает пересмотр того, как мы вообще работаем с сертификатами у клиентов. Не сейчас - когда CA заработает и будет понятно, что именно работает, а что нет. Но направление интересное.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.