$ssl_ciphers

$ssl_ciphers 变量包含用于当前连接的 SSL/TLS 密码套件列表。 — NGINX Core (HTTP)

$ssl_ciphers NGINX Core (HTTP)

说明

`$ssl_ciphers` 变量在 NGINX 中会在处理 HTTPS 请求时自动设置。该变量保存客户端和服务器在 SSL/TLS 握手过程中协商的密码套件的字符串表示。它对日志记录和调试特别有用,因为它可以让服务器管理员了解用于安全连接的密码套件。 只有在 NGINX 中启用了 SSL 模块时该变量才会被填充,并且仅适用于处理 SSL 连接的 server 块。`$ssl_ciphers` 的典型值可能看起来像 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384',表示一个以逗号分隔的密码套件名称列表。出现在该变量中的具体密码取决于在 NGINX server 上下文中定义的 `ssl_ciphers` 配置指令,以及客户端在握手期间的能力和偏好。 在实践中,`$ssl_ciphers` 还可以通过允许管理员根据所使用密码的强度有条件地调整配置,来促进诸如 HSTS(HTTP 严格传输安全)等安全措施的实施。这种遵循安全通信协议的做法增强了 Web 应用的整体安全性。

配置示例

server {
    listen 443 ssl;
    ssl_certificate     /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
    access_log /var/log/nginx/ssl_ciphers.log combined;
}

location / {
    add_header X-Cipher-Used "$ssl_ciphers";
}

子系统

http

可缓存

上下文

http, server, location, if

确保在你的 NGINX 安装中已编译并启用了 SSL 模块;否则该变量将为空。

避免在非 SSL 的 server 块中使用该变量,以防出现意外行为。

记录或显示 `$ssl_ciphers` 的值时,确保妥善处理以避免泄露敏感信息。在生产环境中,显示此类信息可能构成安全风险。