Haproxy ACL 用于比较标头中的值

Y.Y*_*ang 5 ssl haproxy

我使用 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)