ssl_verify_client
`ssl_verify_client` 指令配置 NGINX 是否应请求并验证客户端的 SSL 证书。 — NGINX HTTP Core
ssl_verify_client
httpserver
语法ssl_verify_client on | off | optional;
默认值off
上下文http, server
模块NGINX HTTP Core
参数1
说明
`ssl_verify_client` 指令在 NGINX 配置中用于指定在 SSL 握手期间对客户端 SSL 证书的验证。启用时,该指令会导致 NGINX 向客户端请求证书,并根据 `on`、`off` 或 `optional` 的设置,或者强制确认有效证书,或者在客户端未提供证书时允许其继续访问。该功能在需要增强安全性的场景中特别有用,例如部署了基于证书认证客户端的 mTLS。 该指令接受单个参数: - `on`:要求客户端提供有效证书;如果客户端无法提供,则认证失败。 - `off`:不请求客户端证书,并在认证过程中忽略客户端证书。 - `optional`:请求客户端证书,但即使客户端不提供也允许访问;如果提供了客户端证书,则会对其进行验证。 这种控制级别允许管理员为 NGINX 服务器环境中的不同端点微调安全策略。将此指令的使用与正确配置的 CA 和证书文件配合使用非常关键,以避免安全漏洞并确保 mTLS 的正常运行。
配置示例
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_verify_client on;
ssl_client_certificate /etc/nginx/ssl/ca.crt;
}⚠
确保用于客户端验证的 CA 证书已通过 `ssl_client_certificate` 正确设置。
⚠
如果不谨慎管理,使用 `optional` 而没有适当的客户端证书可能会导致未授权访问。
⚠
确保 SSL 设置被正确定义以支持客户端证书认证。不合适的设置可能会阻止验证成功。