我正在尝试通过添加 [req.ssl_sni] 来扩展自定义 haproxy 日志格式。在 Ubuntu 上使用的 haproxy 版本是 1.6.3。
前端配置如下:
bind *:443
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
tcp-request content reject
log-format [...]{%[req.ssl_sni]}
Where[...]
表示其他运行良好的日志选项。前端在 TCP 模式下运行,在不解密的情况下转发 TLS 会话。
预期的日志输出类似于{my.server.com}
有效的 TLS 会话。我看到的日志输出始终是{-}
(一个破折号而不是服务器名称),即使后端服务器成功处理了 TLS 会话。我必须更改什么才能在日志中查看实际的 SNI 值?
在接受之前使用捕获为我解决了这个问题。
在这里找到解决方案:https ://discourse.haproxy.org/t/log-sni-in-tcp-mode/1534/2
也许问题出在使用的名称上?我在问题中看到“req.ssl_sni”,在 SNI 的示例中看到“req_ssl_sni”。