$ssl_ech_status
Переменная $ssl_ech_status указывает статус поддержки Encrypted ClientHello (ECH) для текущего SSL‑соединения. — 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‑запросов.