# конспект · шаг 5 из 5
Конспект: HSTS и настройки TLS
Что в TLS-настройках уже хорошо по умолчанию, что стоит настроить и что устарело совсем.
Умолчания трогать не надо
ssl_protocols TLSv1.2 TLSv1.3; # это и так по умолчанию
ssl_ciphers HIGH:!aNULL:!MD5; # и это
Осознанный выбор - только ssl_protocols TLSv1.3;, если готовы отказаться от
старых клиентов.
ssl_prefer_server_ciphers больше не про безопасность: в TLS 1.3 набор шифров
жёстко ограничен, и все они хорошие.
Что действительно стоит настроить
ssl_session_cache shared:SSL:10m; # ~40 тысяч сессий, общий для воркеров
ssl_session_timeout 1h;
ssl_session_ticket_key … # если серверов несколько - общий ключ
Но сперва замер: возобновление сессий уже работает на билетах, включённых по умолчанию.
| настройки блока | TLS 1.2 | TLS 1.3 |
|---|---|---|
| умолчания | Reused | Reused |
ssl_session_tickets off |
New | New |
ssl_session_tickets off плюс ssl_session_cache shared |
Reused | Reused |
Кеш нужен, когда билеты выключены осознанно. Именно shared, а не builtin:
встроенный живёт внутри одного воркера.
Старый протокол не включается одной директивой
ssl_protocols TLSv1 ... проходит nginx -t, а рукопожатие всё равно
обрывается предупреждением 70: уровень безопасности OpenSSL не разрешает старые
версии никакими шифрами. Открывается это только сознательным
ssl_ciphers 'DEFAULT@SECLEVEL=0' - и тогда TLS 1.0 действительно
согласуется.
HSTS
add_header Strict-Transport-Security "max-age=31536000" always;
| Параметр | Что делает | Риск |
|---|---|---|
max-age |
сколько браузер помнит «только https» | ошибка лечится долго |
includeSubDomains |
распространить на все поддомены | поддомен без сертификата станет недоступен |
preload |
попасть в список браузеров | практически необратимо |
Порядок: сначала max-age небольшой, убедиться, что всё по https, потом
увеличить, и только затем думать о includeSubDomains.
Ловушки джокера
ssl_stapling on;в 2026 году - мёртвая строка. Let's Encrypt убрал OCSP-ссылку из сертификатов (май 2025) и выключил респондеры (август 2025):nginx -tвыдаёт"ssl_stapling" ignored, no OCSP responder URL.add_headerбезalwaysне появится на ошибочных ответах - в том числе на редиректах и 404.includeSubDomainsпри сертификате только на основной домен превращает обходимое предупреждение в жёсткий блок для поддоменов.
Комментарии
Пока нет комментариев. Будь первым!
Оставить комментарий