HAProxy для припинення SSL також надсилає SSL на сервер бекенда


14

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

Я, здається, не можу знайти спосіб це зробити. Я можу робити регулярне завершення SSL і надсилати звичайні запити HTTP в бекенд. Але мені потрібно відправити SSL в бекенд.

Я хотів би мати такі функції:

  • Витягніть x-перенаправлені заголовки, щоб отримати реальний IP-клієнт за проксі.
  • Реалізуйте клейкість сеансу за допомогою файлу cookie.
  • Зробіть кілька перезаписів URL-адрес.
  • Надішліть SSL-трафік на бекенд, використовуючи чіткість сеансу на основі файлів cookie.

Якщо я не скасую SSL в кінці haproxy, я не можу зробити перезапис URL-адрес.

Будь-яка допомога добрих людей тут буде дуже вдячна.


1
Чи можете ви опублікувати поточну конфігурацію та сказати нам, що не працює?
GregL

Відповіді:


31

У haproxy.cfg робити нічого особливого. Ви просто налаштовуєте все необхідне для перезаписування та маніпуляції із заголовками в межах фронту 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
Дивовижно! Дозвольте мені спробувати це. Мені не вдалося знайти цю річ "сервер .... ssl" ніде.
оазабір

Велике спасибі за вашу допомогу. Мені вдалося змусити його працювати. Однак я не зміг застати SSL липким до роботи. Чи можете ви допомогти, будь ласка? Питання тут: serverfault.com/questions/738397/…
oazabir

Чудово, я радий, що зміг допомогти. Не забудьте прийняти мою відповідь, щоб інші побачили відразу, що це було корисно ;-)
Tubeless

Чи дійсно шифрування працює, даючи ssl перевірити жодне? З документації на haproxy "Якщо встановлено значення" none ", сертифікат сервера не перевіряється. В іншому випадку сертифікат, наданий сервером, перевіряється за допомогою CA з" ca-file "". Може хтось прохання уточнити це?
мім

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