$ssl_ech_status
$ssl_ech_status 变量表示当前 SSL 连接中对 Encrypted ClientHello (ECH) 的支持状态。 — NGINX Core (HTTP)
$ssl_ech_status
NGINX Core (HTTP)
说明
$ssl_ech_status 变量在支持 Encrypted ClientHello (ECH) 的 SSL 连接上下文中设置。它在 SSL 握手过程中传达客户端的 ECH 状态(由握手阶段确定)。该变量可以返回各种值,表明是否使用了 ECH 或在握手期间与其使用相关的任何错误。常见值包括 'on'(表示 ECH 成功协商)、'off'(表示客户端不支持)以及表示其他特定问题的错误代码。 当 NGINX 服务器配置了 SSL 和 ECH 支持时,会处理该变量。当客户端连接并尝试发起 ECH 握手时,服务器会评估该请求并相应地设置 $ssl_ech_status。这样,网站管理员可以根据 ECH 的状态实施细粒度访问控制或自定义响应,从而增强对支持 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 请求中不可用。