← Назад к вопросам

Как получить SSL-сертификат для HTTPS?

1.7 Middle🔥 251 комментариев
#Безопасность#Сети и протоколы

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Получение SSL/TLS-сертификата для HTTPS: полное руководство

Получение SSL-сертификата — критически важный процесс для обеспечения безопасного HTTPS-соединения. Вот подробное пошаговое руководство, основанное на современной практике DevOps.

Основные типы сертификатов

Сертификаты различаются по уровню валидации:

  • DV (Domain Validation) — проверка права владения доменом (самый распространенный)
  • OV (Organization Validation) — дополнительная проверка организации
  • EV (Extended Validation) — максимальная проверка с отображением названия компании в адресной строке

По охвату:

  • Single Domain — один домен
  • Wildcard — домен и все его поддомены (*.example.com)
  • Multi-Domain/SAN — несколько доменов в одном сертификате

Основные способы получения

1. Бесплатные сертификаты через Let's Encrypt

Наиболее популярный вариант в DevOps-среде благодаря автоматизации:

# Установка Certbot (на примере Ubuntu)
sudo apt update
sudo apt install certbot python3-certbot-nginx

# Получение сертификата для Nginx
sudo certbot --nginx -d example.com -d www.example.com

# Автоматическое обновление (добавляется в crontab)
sudo certbot renew --dry-run

Преимущества Let's Encrypt:

  • Полностью бесплатно
  • Автоматизация через ACME-протокол
  • 90-дневный срок действия (побуждает к автоматизации)
  • Поддержка wildcard-сертификатов

2. Покупка у коммерческого центра сертификации

Популярные провайдеры:

  • DigiCert
  • Sectigo (бывший Comodo)
  • GlobalSign
  • SSL.com

Процесс покупки:

  1. Генерация CSR (Certificate Signing Request)
  2. Отправка CSR выбранному провайдеру
  3. Прохождение валидации
  4. Получение и установка сертификата
# Генерация приватного ключа и CSR
openssl req -new -newkey rsa:2048 -nodes \
  -keyout example.com.key \
  -out example.com.csr \
  -subj "/C=RU/ST=Moscow/L=Moscow/O=Example Corp/CN=example.com"

Ключевые этапы процесса

Генерация приватного ключа и CSR

Приватный ключ НИКОГДА не должен передаваться третьим лицам и должен храниться в защищенном месте (HashiCorp Vault, AWS Secrets Manager).

Валидация домена

Методы валидации:

  • HTTP/HTTPS — размещение проверочного файла на веб-сервере
  • DNS — добавление TXT-записи в DNS
  • Email — подтверждение через email администратора домена

Установка сертификата на сервер

Пример для Nginx:

server {
    listen 443 ssl http2;
    server_name example.com;
    
    ssl_certificate /etc/ssl/certs/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;
    
    # Рекомендуемые настройки безопасности
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
    ssl_prefer_server_ciphers off;
    
    # HSTS для дополнительной безопасности
    add_header Strict-Transport-Security "max-age=63072000" always;
}

Автоматизация в DevOps-практике

Инфраструктура как код (Terraform + ACME):

resource "acme_certificate" "example" {
  account_key_pem = acme_registration.example.private_key_pem
  common_name     = "example.com"
  
  dns_challenge {
    provider = "route53"
  }
}

Использование Kubernetes Cert-Manager:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: admin@example.com
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx

Мониторинг и обновление

Критически важные практики:

  1. Автоматическое обновление через cron или systemd timer
  2. Мониторинг срока действия (Prometheus + Blackbox Exporter)
  3. Централизованное управление сертификатами в больших инфраструктурах
# Проверка срока действия сертификата
openssl x509 -in certificate.crt -text -noout | grep -A2 Validity

# Автоматическая проверка через скрипт
certbot renew --quiet --post-hook "systemctl reload nginx"

Рекомендации по безопасности

  1. Используйте ключи минимум 2048 бит (рекомендуется 4096 для долгосрочных сертификатов)
  2. Внедрите HSTS для защиты от downgrade-атак
  3. Настройте OCSP stapling для улучшения производительности
  4. Регулярно обновляйте TLS-конфигурации в соответствии с лучшими практиками (Mozilla SSL Config Generator)
  5. Используйте отдельные сертификаты для продакшена и тестовых сред

Выбор стратегии

Для стартапов и небольших проектов:

  • Let's Encrypt с автоматическим обновлением
  • Использование CDN с встроенным SSL (Cloudflare, AWS CloudFront)

Для корпоративных решений:

  • Коммерческие wildcard или multi-domain сертификаты
  • Внутренний PKI для внутренних сервисов
  • Аппаратные security modules (HSM) для хранения ключей

Важное замечание: С 2020 года Let's Encrypt поддерживает wildcard-сертификаты, что делает его пригодным для большинства сценариев. Однако для некоторых регуляторных требований (финансовые учреждения, государственные организации) могут потребоваться коммерческие сертификаты OV/EV уровня.

Правильно настроенный SSL/TLS не только обеспечивает безопасность, но и улучшает SEO-ранжирование и доверие пользователей. Автоматизация этого процесса — ключевая компетенция современного DevOps-инженера.