Что такое Let’s Encrypt и как его используют в DevOps?

Ответ

Let's Encrypt — это бесплатный, автоматизированный и открытый центр сертификации (Certificate Authority, CA), который выдает SSL/TLS-сертификаты для шифрования веб-трафика (HTTPS). Его философия полностью соответствует принципам DevOps: автоматизация, повторяемость и устранение ручных операций.

Как это работает в DevOps-практике:

  1. Автоматизация через ACME-протокол: Клиент (например, certbot) доказывает серверу Let's Encrypt, что управляет доменом (через HTTP- или DNS-челлендж), и автоматически получает сертификат.
  2. Короткий срок жизни (90 дней): Это вынуждает автоматизировать процесс обновления, что повышает безопасность. Сертификаты не "забываются" на года.
  3. Интеграция в пайплайны и инфраструктуру: Выпуск и обновление сертификатов встраиваются в процесс развертывания (CI/CD) или конфигурации инфраструктуры как код (IaC).

Пример автоматического получения и обновления с certbot в Docker:

# Получение сертификата (standalone mode)
docker run -it --rm --name certbot 
  -v "/etc/letsencrypt:/etc/letsencrypt" 
  -v "/var/lib/letsencrypt:/var/lib/letsencrypt" 
  -p 80:80 
  certbot/certbot certonly --standalone -d example.com --agree-tos --non-interactive

# Автоматическое обновление (добавляется в cron)
docker run --rm --name certbot 
  -v "/etc/letsencrypt:/etc/letsencrypt" 
  -v "/var/lib/letsencrypt:/var/lib/letsencrypt" 
  certbot/certbot renew --quiet

Интеграция с инфраструктурой:

  • Terraform: Провайдеры (например, acme) для управления сертификатами как кодом.
  • Kubernetes: Использование cert-manager как контроллера для автоматического выпуска и ротации сертификатов для Ingress-ресурсов.
  • Облачные провайдеры: AWS Certificate Manager, Google Cloud Certificate Authority — предлагают аналогичный автоматизированный функционал, иногда интегрируясь с Let's Encrypt.

Ответ 18+ 🔞

Э, слушай, давай про Let's Encrypt, а то я тут как-то на днях с этим делом разбирался. Штука, в общем, охуенная, прям в душу божья мать всем депопсам. По сути, это такие ребята, которые раздают SSL-сертификаты на HTTPS даром, на автомате и без этих ваших бюрократических плясок с бубном.

Фишка вся в чём? В том, чтобы всё было автоматизировано, как в нормальном девопсе — никакого ручного труда, всё скриптами и пайплайнами. Ёпта, идеально.

Как эта магия работает на практике:

  1. Всё через протокол ACME: Твой сервак (допустим, через certbot) просто доказывает Let's Encrypt, что он действительно владеет доменом. Типа, «смотри, я файлик на твоём сайте положу» или «DNS-запись добавлю». Доказал — на, получай сертификат, не задерживай очередь. Всё без человека.
  2. Живут сертификаты недолго, всего 90 дней. И это, между прочим, гениально! Потому что сразу отбивает охоту делать всё вручную раз в три года. Тебя вынуждают автоматизировать обновление, а значит, меньше шансов, что всё накроется медным тазом с просроченным сертом. Безопасность, ёба!
  3. Встраивается куда угодно: В твой CI/CD, в Terraform-скрипты, в кубер — куда душа пожелает. Инфраструктура как код, ёптель-моптель!

Вот, смотри, как это просто через certbot в Docker делается:

# Раз — и получаем сертификат (standalone mode)
docker run -it --rm --name certbot 
  -v "/etc/letsencrypt:/etc/letsencrypt" 
  -v "/var/lib/letsencrypt:/var/lib/letsencrypt" 
  -p 80:80 
  certbot/certbot certonly --standalone -d example.com --agree-tos --non-interactive

# А потом обновление в крон закидываем и забываем
docker run --rm --name certbot 
  -v "/etc/letsencrypt:/etc/letsencrypt" 
  -v "/var/lib/letsencrypt:/var/lib/letsencrypt" 
  certbot/certbot renew --quiet

А если по-взрослому, с инфраструктурой:

  • Terraform: Есть провайдер acme. Описываешь сертификат как код, и он сам создаётся. Удивление пиздец, как удобно.
  • Kubernetes: Ставишь cert-manager — эта мартышлюшка сама следит за твоими Ingress-ами, выбивает для них серты и вовремя обновляет. Сидишь, кофе пьёшь.
  • Облака (AWS, GCP): У них свои менеджеры сертификатов есть, но по духу — то же самое. Автоматизация, да похуй, где именно.

Короче, ебушки-воробушки, прогресс налицо. Раньше за сертификатом в банк идти надо было, а теперь твой скрипт всё решает. Красота!