$ssl_session_id

$ssl_session_id 变量包含 NGINX 服务器上当前 SSL 会话的唯一标识符。 — NGINX Core (HTTP)

$ssl_session_id NGINX Core (HTTP)

说明

在 NGINX 中,$ssl_session_id 变量表示与当前活动的 SSL 会话关联的会话 ID。该变量在 SSL 连接建立后可用,通常与 SSL 会话缓存配置结合使用,以优化 SSL/TLS 握手。每个已建立的 SSL 会话都可以通过其会话 ID 引用,该 ID 用于在无需重新协商握手的情况下恢复会话。该变量对于安全地监控、记录或管理用户会话特别有用。 $ssl_session_id 通常是唯一标识 SSL 会话的十六进制字符串。它在握手过程中创建,并在客户端尝试恢复 SSL 会话时使用。如果会话恢复不受支持或被禁用,则该变量可能返回空字符串。因此,必须确保服务器启用了 SSL 会话缓存,才能有效利用该变量的优势。常见的值可能类似 '00:11:22:33:44:55:66:77:88:99:AA:BB',表示会话 ID 的十六进制表示。 该变量适用于各种场景,例如在日志配置中捕获 SSL 会话信息,或在基于 SSL 会话属性启用特定访问控制时使用。此外,将相关变量(例如 $ssl_protocol 和 $ssl_cipher)与 $ssl_session_id 结合使用可以提供更深入的洞察。

配置示例

http {
    server {
        listen 443 ssl;
        ssl_certificate /etc/ssl/certs/my_cert.pem;
        ssl_certificate_key /etc/ssl/private/my_cert.key;

        location / {
            access_log /var/log/nginx/access.log combined;
            add_header X-SSL-Session-ID $ssl_session_id;
        }
    }
}

子系统

http

可缓存

上下文

http, server, location, if

请确保已正确配置 SSL,以便该变量可用;否则,它将返回空值。

如果会话恢复被禁用,请注意 $ssl_session_id 不会提供有用的信息。

在非 SSL 上下文中使用该变量将导致空字符串。