SSL/TLS

Тема дорожной карты · Nginx

Конфигурация SSL/TLS в Nginx превращает веб-сервер в защищённый HTTPS-эндпоинт путём завершения зашифрованных соединений на уровне прокси, расшифровки трафика и, при необходимости, повторного шифрования перед пересылкой вышестоящим бэкендам. Минимально необходимые директивы для включения SSL/TLS — listen 443 ssl, ssl_certificate и ssl_certificate_key внутри блока server; однако конфигурация SSL/TLS продакшен-уровня также задаёт ssl_protocols TLSv1.2 TLSv1.3, ssl_ciphers, ssl_session_cache shared:SSL:10m и ssl_session_timeout 1d для максимизации как безопасности, так и производительности. OCSP Stapling (ssl_stapling on) снижает задержку TLS-рукопожатия, устраняя проверки отзыва сертификата на стороне клиента, а HSTS (add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload") предписывает браузерам всегда использовать HTTPS. Nginx поддерживает SNI (Server Name Indication), позволяя одному IP-адресу обслуживать SSL/TLS-сертификаты для нескольких доменов в разных блоках server, что необходимо для размещения нескольких HTTPS-виртуальных хостов. Правильная конфигурация SSL/TLS в Nginx является основой веб-безопасности: она защищает данные при передаче, обеспечивает работу HTTP/2 (требующего TLS во всех основных браузерах) и выполняет требования соответствия практически любым отраслевым стандартам.

Как это работает

SSL/TLS обязателен в 2026. Конфигурация: listen 443 ssl http2;, ssl_certificate /path/fullchain.pem;, ssl_certificate_key /path/privkey.pem;. Современный протокол + cipher: ssl_protocols TLSv1.2 TLSv1.3;, ssl_ciphers ECDHE-... (Mozilla "intermediate" profile — разумный дефолт: https://ssl-config.mozilla.org/). Включайте OCSP stapling, session caching (ssl_session_cache shared:SSL:10m), session tickets осторожно. Авто-renew сертов через certbot (Let's Encrypt) или step-ca.

Когда применять

Let's Encrypt + certbot — для бесплатных авто-ренью сертов в большинстве случаев. Mozilla SSL Configuration Generator — для списка cipher. Тест на SSL Labs (ssllabs.com/ssltest) — цель A+. HTTP → HTTPS редирект на server-уровне. HSTS — только после уверенности, что HTTPS работает везде (неверный HSTS-preload навсегда). TLS 1.3 — самый современный.

Типичные ошибки

Ловушки SSL/TLS: включён SSLv3 / TLS 1.0/1.1 (уязвимы — отключите); слабые cipher (DES, RC4); HSTS слишком рано (запирает HTTPS-only до получения сертов всеми поддоменами); серты истекают, потому что ручное renew забыли (всегда автоматизируйте); session tickets с дефолтным ephemeral-ключом, меняющимся на каждый reload (слишком агрессивно для больших сайтов).

Связанные понятия

Полезные ресурсы