我使用 Haproxy 作为 SSL 终止来识别客户端证书。我想检查客户端证书中的 CN 值是否与客户端发送的标头值匹配。如果证书中的 CN 值与标头中的值不匹配,有没有办法设置 ACL?
就像是:
http-request set-header X-SSL-Client-CN %{+Q}[ssl_c_s_dn(cn)]
acl id_not_match hdr(client-id) -m hdr(X-SSL-Client-CN)Run Code Online (Sandbox Code Playgroud)
小智 3
检查 CN 并允许基于列表进行身份验证的示例配置:
frontend www-https
....
http-request set-header X-SSL-Client-CN %{+Q}[ssl_c_s_dn(cn)]
use_backend www-backend
backend www-backend
acl allow_users req.fhdr(X-SSL-Client-CN) -m str -f /etc/haproxy/ssl/userslist
http-request deny if !allow_users
....
server www-1 <ip>:<port> check
server www-2 <ip>:<port> check
Run Code Online (Sandbox Code Playgroud)