1. 1
  2. 2
  3. 3
  4. 4
  5. 5

# конспект · шаг 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 при сертификате только на основной домен превращает обходимое предупреждение в жёсткий блок для поддоменов.

Комментарии

Пока нет комментариев. Будь первым!

Оставить комментарий

Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.