Ssl
req.ssl_sni 的 haproxy 日誌記錄
我正在嘗試通過添加來擴展自定義 haproxy 日誌格式
$$ req.ssl_sni $$. 在 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 值?
在接受之前使用擷取為我解決了這個問題。
frontend https-in mode tcp tcp-request inspect-delay 3s tcp-request content capture req.ssl_sni len 10 log-format "capture0: %[capture.req.hdr(0)]" tcp-request content accept if { req_ssl_hello_type 1 } use_backend test_0 if req.ssl_sni -m end /test
在這裡找到解決方案:https ://discourse.haproxy.org/t/log-sni-in-tcp-mode/1534/2
也許問題出在使用的名稱上?我在問題中看到“req.ssl_sni”,在 SNI 的範例中看到“req_ssl_sni”。