$ssl_ech_status

Переменная $ssl_ech_status указывает статус поддержки Encrypted ClientHello (ECH) для текущего SSL‑соединения. — NGINX Core (HTTP)

$ssl_ech_status NGINX Core (HTTP)

Описание

Переменная $ssl_ech_status устанавливается в контексте SSL‑соединения, которое поддерживает Encrypted ClientHello (ECH). Она передаёт статус ECH клиента, определённый в процессе SSL‑handshake. Переменная может возвращать разные значения, указывающие, использовался ли ECH, или были ли какие‑либо ошибки, связанные с его использованием во время handshake. Обычные значения включают 'on', если ECH было успешно согласовано, 'off', если клиент не поддерживает его, и коды ошибок для других конкретных проблем. Обработка этой переменной происходит, когда сервер NGINX настроен с включённой поддержкой SSL и ECH. Когда клиент подключается и пытается инициировать ECH‑handshake, сервер оценивает запрос и соответствующим образом устанавливает $ssl_ech_status. Это позволяет вебмастерам реализовывать тонкую настройку управления доступом или настраивать ответы в зависимости от статуса ECH, что повышает возможности конфиденциальности для клиентов, которые его поддерживают. На практике переменная полезна для ведения логов или для написания условий в конфигурационных файлах, которые могут адаптировать ответы в зависимости от поддержки шифрования клиентом. Это может включать настройку поведения серверов приложений или даже перенаправление клиентов в зависимости от их возможностей по безопасности.

Пример конфига

server {
    listen 443 ssl;
    ssl_certificate /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;
    
    location / {
        if ($ssl_ech_status = 'on') {
            add_header X-ECH-Status 'Enabled';
        }
        if ($ssl_ech_status = 'off') {
            return 403;
        }
    }
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Убедитесь, что SSL настроен правильно; в противном случае переменная может не быть задана или возвращать неожиданные результаты.

Учтите, что эта переменная существует только в контексте SSL‑соединений; она не будет доступна для обычных HTTP‑запросов.