Ответ
TLS (Transport Layer Security) и его предшественник SSL (Secure Sockets Layer) — это криптографические протоколы, обеспечивающие безопасную, зашифрованную и аутентифицированную передачу данных по сети. SSL устарел и считается небезопасным, его следует заменять на TLS.
Основные функции с точки зрения DevOps:
- Шифрование: Защита данных от перехвата (конфиденциальность).
- Аутентификация: Убеждённость клиента, что он подключился к настоящему серверу (и наоборот, при mutual TLS). Обычно через сертификаты, выпущенные доверенным центром сертификации (CA).
- Целостность данных: Гарантия, что данные не были изменены при передаче (используются коды аутентификации сообщений — MAC).
Практическое применение в инфраструктуре:
- Защита веб-трафика (HTTPS): Настройка TLS на ingress-контроллерах (Nginx, Traefik), load balancer'ах (AWS ALB/NLB) или непосредственно на сервисах.
- Взаимодействие между сервисами (mTLS): Используется в service mesh (например, Istio) для аутентификации и шифрования трафика "сервис-сервис" внутри кластера.
- Защита баз данных и других внутренних соединений.
Пример настройки современного TLS в Nginx (актуальные best practices):
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
# Пути к сертификатам (например, от Let's Encrypt)
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Отключаем устаревшие и небезопасные протоколы
ssl_protocols TLSv1.2 TLSv1.3;
# Предпочтительные современные шифры
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# Параметры безопасности (HSTS, безопасная переадресация)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# ... остальная конфигурация ...
}
# Принудительный редирект с HTTP на HTTPS
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
Ключевые инструменты DevOps для работы с TLS: openssl (для проверки, создания CSR), certbot (для автоматического получения сертификатов Let's Encrypt), HashiCorp Vault (для динамической выдачи сертификатов).