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

«Что такое Let’s Encrypt и как его используют в DevOps?» — вопрос из категории Безопасность, который задают на 24% собеседований 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.