$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 请求中不可用。