HAProxy для прекращения SSL также отправить SSL на внутренний сервер


14

Я хотел бы прекратить SSL на HAProxy, сделать некоторые манипуляции с заголовком, переписать URL и повторно зашифровать трафик и отправить на серверы в качестве SSL?

Я не могу найти способ сделать это. Я могу выполнить обычное SSL-завершение и отправить простые HTTP-запросы в бэкэнд. Но мне нужно отправить SSL на сервер.

Я хотел бы иметь следующие функции:

  • Извлечь заголовки x-forwarded-for, чтобы получить реальный IP-адрес клиента за прокси.
  • Реализуйте липкость сессии, используя cookie.
  • Сделайте переписывание URL.
  • Отправьте SSL-трафик на сервер, используя прилипание сеансов на основе файлов cookie.

Пока я не прерву SSL в конце haproxy, я не смогу переписать URL.

Любая помощь от хороших людей здесь будет принята с благодарностью.


1
Можете ли вы опубликовать свой текущий конфиг и сказать, что не работает?
Грегл

Ответы:


30

В haproxy.cfg нет ничего особенного. Вы просто настраиваете любые перезаписи URL-адресов и манипуляции с заголовками, которые вы хотите в своем интерфейсе HAProxy, а затем перенаправляете трафик на ваш SSL-бэкэнд. Вот быстрый пример:

frontend app1_ssl
    bind *:443 ssl crt /etc/haproxy/certs.d/example.com.crt crt /etc/haproxy/certs.d/ no-sslv3

    option http-server-close
    option forwardfor
    reqadd X-Forwarded-Proto:\ https
    reqadd X-Forwarded-Port:\ 443

    # set HTTP Strict Transport Security (HTST) header
    rspadd  Strict-Transport-Security:\ max-age=15768000

    # some ACLs and URL rewrites...

    default_backend             backend_app1_ssl


backend backend_app1_ssl
    server mybackendserver 127.0.0.1:4433 ssl verify none

1
Потрясающие! Позвольте мне попробовать это. Я нигде не смог найти эту вещь "server .... ssl".
оазабир

Большое спасибо за вашу помощь. Я смог заставить его работать. Тем не менее, я не смог заставить работать SSL. Не могли бы вы помочь, пожалуйста? Вопрос здесь: serverfault.com/questions/738397/…
oazabir

Отлично, я рад, что смог помочь. Не забудьте принять мой ответ, чтобы другие сразу поняли, что это было полезно ;-)
Tubeless

Шифрование действительно работает, давая ssl проверить ни один? Из документации haproxy: «Если установлено« none », сертификат сервера не проверяется. В другом случае сертификат, предоставленный сервером, проверяется с помощью CA из« ca-file »». Может кто-нибудь уточнить, пожалуйста?
MJM

Поскольку ssl verify noneтрафик между HAProxy и внутренним сервером все еще зашифрован, но действительность SSL-сертификата внутреннего сервера не проверяется.
бескамерный
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.