ssl_protocols
Тема дорожной карты · Nginx
Директива ssl_protocols управляет версиями протоколов TLS/SSL, которые Nginx принимает во время TLS-рукопожатия; её правильная настройка является одним из наиболее важных решений безопасности для любого HTTPS-развёртывания Nginx. Текущая конфигурация в соответствии с лучшими практиками — ssl_protocols TLSv1.2 TLSv1.3, которая отключает устаревшие протоколы SSLv3, TLSv1.0 и TLSv1.1, уязвимые для атак POODLE, BEAST и CRIME, при сохранении совместимости с подавляющим большинством современных клиентов. TLS 1.3 — новейшая версия протокола — по умолчанию обеспечивает прямую секретность, более быстрое рукопожатие через возобновление сессии 0-RTT и упрощённую модель наборов шифров, что делает его предпочтительным протоколом для новых SSL/TLS-развёртываний Nginx. Директива ssl_protocols работает совместно с ssl_ciphers и ssl_prefer_server_ciphers для определения полной криптографической политики веб-сервера Nginx; генератор конфигурации SSL Mozilla предоставляет рекомендуемые пресеты для различных профилей совместимости. Ограничение ssl_protocols значениями TLSv1.2 и TLSv1.3 обязательно для получения рейтинга «A+» на SSL Labs и соответствия стандартам безопасности PCI-DSS, HIPAA и NIST.
Как это работает
ssl_protocols обязателен в 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_protocols: включён SSLv3 / TLS 1.0/1.1 (уязвимы — отключите); слабые cipher (DES, RC4); HSTS слишком рано (запирает HTTPS-only до получения сертов всеми поддоменами); серты истекают, потому что ручное renew забыли (всегда автоматизируйте); session tickets с дефолтным ephemeral-ключом, меняющимся на каждый reload (слишком агрессивно для больших сайтов).