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 заработает и будет понятно, что именно работает, а что нет. Но направление интересное.
- SSL-аудит nginx после Heartbleed: от B до A минимальными правками · 19 августа 2014
- Два инцидента за полгода: переходим на ежеквартальный аудит безопасности · 30 сентября 2014