$ssl_client_sigalg
变量 $ssl_client_sigalg 包含客户端 SSL 证书使用的签名算法。 — NGINX Core (HTTP)
$ssl_client_sigalg
NGINX Core (HTTP)
说明
当客户端在 TLS 握手期间提供 SSL 证书时,会设置变量 $ssl_client_sigalg。它保存用于签署客户端证书的签名算法。此变量对于验证客户端证书的应用程序非常重要,应用程序可能会根据签名算法的安全级别决定是否允许或拒绝访问。$ssl_client_sigalg 的取值可能不同;常见算法包括 'sha256WithRSAEncryption'、'sha1WithRSAEncryption' 等,具体取决于客户端的配置和安全策略。 NGINX 仅在启用客户端 SSL 证书的上下文中设置此变量,特别是在 'server' 和 'location' 块中且 ssl_verify_client 指令被设置为 'on' 或 'optional' 的情况下。如果未提供客户端证书,该变量将为空。这对日志记录或调试特别有用,因为它允许服务器管理员查看访问其服务的客户端使用了哪些签名算法,并基于这些信息做出明智决策。此外,客户端 SSL 配置的更改可能会改变此处生成的值,应相应地进行监控。
配置示例
server {
listen 443 ssl;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
ssl_client_certificate /path/to/client_ca.crt;
ssl_verify_client on;
location / {
if ($ssl_client_sigalg = 'sha256WithRSAEncryption') {
# Log or take action for clients using SHA256
access_log /var/log/nginx/ssl.log;
}
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
如果未启用 SSL 客户端验证或客户端未提供证书,则此变量将为空。
⚠
错误配置 SSL 上下文可能导致该变量未被设置,并引发访问逻辑的意外行为。