HAProxy zum Beenden von SSL sendet SSL auch an den Back-End-Server


14

Ich möchte SSL bei HAProxy kündigen, den Header manipulieren, die URL umschreiben und den Datenverkehr neu verschlüsseln und als SSL an Back-End-Server senden.

Ich kann anscheinend keinen Weg finden, dies zu tun. Ich kann eine regelmäßige SSL-Kündigung durchführen und einfache HTTP-Anfragen an das Backend senden. Aber ich muss SSL an das Backend senden.

Ich hätte gerne folgende Features:

  • Extrahieren Sie x-forwarded-for-Header, um die echte Client-IP hinter dem Proxy zu ermitteln.
  • Implementieren Sie Session Stickiness mithilfe von Cookies.
  • Führen Sie eine URL-Umschreibung durch.
  • Senden Sie SSL-Datenverkehr mit Cookie-basierter Sitzungshaftigkeit an das Backend.

Wenn ich SSL nicht am Haproxy-Ende beende, kann ich das URL-Neuschreiben nicht durchführen.

Jede Hilfe von den guten Leuten hier wäre sehr dankbar.


1
Kannst du deine aktuelle Konfiguration posten und uns sagen, was nicht funktioniert?
— GregL

Antworten:


29

In haproxy.cfg gibt es nichts Besonderes zu tun. Sie konfigurieren einfach die gewünschten URL-Umschreibungen und Header-Manipulationen in Ihrem HAProxy-Frontend und leiten den Datenverkehr an Ihr SSL-Backend weiter. Hier ist ein kurzes Beispiel:

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
Genial! Lass es mich versuchen. Ich konnte dieses "Server .... ssl" -Ding nirgendwo finden.
— Oazabir

Vielen Dank für deine Hilfe. Ich konnte es zum Laufen bringen. Allerdings konnte ich SSL nicht zum Laufen bringen. Könnten Sie bitte helfen? Die Frage ist hier: serverfault.com/questions/738397/…
— oazabir

Toll, ich bin froh, dass ich helfen konnte. Vergiss nicht, meine Antwort zu akzeptieren, damit andere sofort sehen können, dass sie hilfreich war ;-)
— Tubeless

Funktioniert die Verschlüsselung wirklich so, dass ssl none verifiziert? In der Haproxy-Dokumentation wird "Wenn 'none' festgelegt ist, wird das Serverzertifikat nicht überprüft. In dem anderen Fall wird das vom Server bereitgestellte Zertifikat mithilfe von Zertifizierungsstellen aus 'ca-file' überprüft". Kann das bitte jemand klären?
— mjm

Der ssl verify noneDatenverkehr zwischen HAProxy und dem Back-End-Server ist weiterhin verschlüsselt, die Gültigkeit des SSL-Zertifikats des Back-End wird jedoch nicht überprüft.
— Tubeless
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.