$ssl_cipher
$ssl_cipher 变量包含用于 SSL/TLS 连接的加密套件名称。 — NGINX Core (HTTP)
说明
NGINX 中的 $ssl_cipher 变量提供当前用于 SSL/TLS 连接的加密套件名称。该变量对日志记录和调试非常有用,因为它允许管理员确定为安全连接协商的加密算法。$ssl_cipher 的值在 SSL 握手过程中设置,当客户端通过 HTTPS 发起连接时会发生该过程。根据所选的加密套件,$ssl_cipher 变量可能包含诸如 'ECDHE-RSA-AES256-GCM-SHA384' 或 'ECDHE-ECDSA-CHACHA20-POLY1305' 等值。 在为 NGINX 配置 SSL/TLS 时,了解服务器端和客户端的 SSL 实现所支持的加密套件非常重要。支持的加密套件可以在 NGINX 配置文件中使用 ssl_ciphers 指令指定。$ssl_cipher 的实际值将反映在该 ssl_ciphers 指令中设置的配置,并且可能还取决于用于构建 NGINX 的 OpenSSL 版本。如果客户端尝试使用服务器不支持的加密套件进行连接,则连接将失败,且 $ssl_cipher 变量不会被设置。 除了在处理 SSL 连接时存在外,还可以将 $ssl_cipher 与日志记录指令结合使用以捕获与安全相关的数据,从而有助于分析和监控安全会话。这种可见性有助于理解客户端连接、实施安全合规性并优化加密套件配置。
配置示例
server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_ciphers 'HIGH:!aNULL:!MD5';
access_log /var/log/nginx/access.log combined;
location / {
add_header X-SSL-Cipher $ssl_cipher;
}
}子系统
http可缓存
是上下文
http, server, location确保在你的 NGINX 配置中正确启用 SSL;否则,该变量将不会被设置。
请注意,$ssl_cipher 的值取决于服务器配置和客户端的能力;不匹配可能导致连接失败。
在与日志记录结合使用时,请确保正确格式化日志,以便捕获加密套件值且不破坏日志格式。如果处理不当,它们会使输出变得杂乱。