$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` 的值时,确保妥善处理以避免泄露敏感信息。在生产环境中,显示此类信息可能构成安全风险。