ssl_early_data
Директива `ssl_early_data` включает или отключает использование ранних данных TLS в NGINX. — NGINX HTTP Core
Описание
Директива `ssl_early_data` управляет обработкой ранних данных в TLS 1.3-соединениях для NGINX. Ранние данные позволяют клиентам отправлять данные сразу после начала рукопожатия, что особенно выгодно в сценариях, когда клиент хочет отправить запрос до завершения рукопожатия, потенциально снижая задержку для таких операций, как HTTP/2 и QUIC. При включении клиент может отправить до 2^14 байт ранних данных на сервер при условии, что сервер настроен соответствующим образом для их обработки. Установка директивы в 'on' включает прием ранних данных, что требует осторожного подхода из-за возможных атак воспроизведения, поскольку ранние данные не гарантируют свежесть отправляемых данных. Для снижения связанных с этим рисков может потребоваться реализовать политики, например проверки идемпотентности на уровне приложения. Важно отметить, что не все клиенты могут поддерживать или корректно обрабатывать ранние данные, и их эффективность может варьироваться в зависимости от шаблонов трафика и сценариев использования веб‑приложения. Эта директива может использоваться в контекстах `http` и `server`, влияя на то, как согласовываются соединения и как обрабатываются ранние данные в ходе TLS-сеансов.
Пример конфига
server {
listen 443 ssl;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_early_data on;
}Включение early data может подвергнуть приложение атакам воспроизведения; убедитесь, что идемпотентность корректно обрабатывается.
Не все клиенты поддерживают early data, что может привести к непоследовательному поведению при широком использовании на разных user agents.