HAProxy, aby zakończyć SSL, również wysłać SSL na serwer zaplecza


14

Chciałbym zakończyć protokół SSL w HAProxy, wykonać pewne operacje na nagłówku, przepisać adres URL i ponownie zaszyfrować ruch i wysłać do serwerów zaplecza jako SSL?

Nie mogę znaleźć sposobu, aby to zrobić. Mogę zrobić regularne zakończenie SSL i wysłać zwykłe żądania HTTP do backendu. Ale muszę wysłać SSL do backendu.

Chciałbym mieć następujące funkcje:

  • Wyodrębnij nagłówki przekierowane x, aby uzyskać rzeczywisty adres IP klienta za serwerem proxy.
  • Wdrożenie lepkości sesji za pomocą plików cookie.
  • Wykonaj przepisywanie adresów URL.
  • Wysyłaj ruch SSL do backendu, korzystając ze stickieness sesji opartej na plikach cookie.

O ile nie zakończę protokołu SSL na haproxy, nie mogę zrobić przepisywania adresów URL.

Jakakolwiek pomoc dobrych ludzi tutaj będzie bardzo mile widziana.


1
Czy możesz opublikować swoją bieżącą konfigurację i powiedzieć nam, co nie działa?
— GregL,

Odpowiedzi:


31

W haproxy.cfg nie ma nic specjalnego do roboty. Wystarczy skonfigurować dowolne przepisywanie adresów URL i manipulowanie nagłówkami w interfejsie HAProxy, a następnie przekierowywać ruch do zaplecza SSL. Oto szybki przykład:

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
Niesamowite! Pozwól mi spróbować. Nigdzie nie byłem w stanie znaleźć tego „serwera .... ssl”.
— oazabir

Wielkie dzięki za Twoją pomoc. Udało mi się to uruchomić. Nie udało mi się jednak przykleić protokołu SSL do pracy. Czy możesz mi pomóc? Pytanie jest tutaj: serverfault.com/questions/738397/…
— oazabir

Świetnie, cieszę się, że mogłem pomóc. Nie zapomnij zaakceptować mojej odpowiedzi, aby inni mogli od razu zobaczyć, że była pomocna ;-)
— Tubeless

Czy szyfrowanie naprawdę działa, podając, że ssl nie weryfikuje żadnego? Z dokumentacji haproxy „Jeśli ustawiony na„ brak ”, certyfikat serwera nie jest weryfikowany. W innym przypadku certyfikat dostarczony przez serwer jest weryfikowany przy użyciu urzędów certyfikacji z„ pliku ca ”. Czy ktoś może to wyjaśnić?
— mjm,

Przy ssl verify noneruchu między HAProxy a serwerem zaplecza jest nadal szyfrowany, ale ważność certyfikatu SSL zaplecza nie jest sprawdzana.
— Tubeless
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.