Назад | Перейти на главную страницу

haproxy логирование req.ssl_sni

Я пытаюсь расширить собственный формат журнала haproxy, добавив [req.ssl_sni]. Используемая версия haproxy - 1.6.3 на Ubuntu.

Интерфейс настроен следующим образом:

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]}

куда [...] обозначает другие параметры журнала, которые работают нормально. Интерфейс работает в режиме 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" в вопросе и "req_ssl_sni" в примерах для SNI.