HAProxy เพื่อยกเลิก SSL ยังส่ง SSL ไปยังเซิร์ฟเวอร์แบ็กเอนด์


14

ฉันต้องการยกเลิก SSL ที่ HAProxy ทำการจัดการบางอย่างบนส่วนหัวเขียน URL ใหม่และเข้ารหัสการรับส่งข้อมูลอีกครั้งและส่งไปยังเซิร์ฟเวอร์แบ็กเอนด์เป็น SSL หรือไม่

ฉันไม่สามารถหาวิธีทำสิ่งนี้ได้ ฉันสามารถเลิกใช้ SSL ได้ตามปกติและส่งคำขอ HTTP ธรรมดาเพื่อแบ็กเอนด์ แต่ฉันต้องส่ง SSL เพื่อแบ็กเอนด์

ฉันต้องการมีคุณสมบัติดังต่อไปนี้:

  • แตก x-forwarded-for header เพื่อรับ IP ไคลเอ็นต์จริงหลังพร็อกซี
  • ใช้ความหนืดของเซสชันโดยใช้คุกกี้
  • ทำการเขียน URL ใหม่
  • ส่งปริมาณการใช้งาน SSL ไปยังส่วนแบ็คเอนด์โดยใช้เซสชันที่ยึดติดกับคุกกี้

ถ้าฉันสิ้นสุด SSL ที่ปลาย haproxy ฉันจะไม่สามารถเขียน URL ใหม่ได้

ความช่วยเหลือใด ๆ จากคนดีที่นี่จะได้รับการชื่นชมอย่างมาก


1
คุณสามารถโพสต์การตั้งค่าปัจจุบันของคุณและบอกเราว่าไม่ทำงานอะไร
GregL

คำตอบ:


31

ไม่มีอะไรพิเศษที่ต้องทำใน 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
! น่ากลัว ขอผมลองดู ฉันไม่สามารถค้นหา "เซิร์ฟเวอร์ .... ssl" ได้ทุกที่
oazabir

ขอบคุณมากสำหรับความช่วยเหลือของคุณ. ฉันสามารถทำให้มันทำงานได้ อย่างไรก็ตามฉันไม่สามารถใช้งาน SSL เหนียวได้ คุณช่วยได้ไหม คำถามอยู่ที่นี่: serverfault.com/questions/738397/…
oazabir

เยี่ยมมากฉันดีใจที่ฉันสามารถช่วยได้ อย่าลืมยอมรับคำตอบของฉันเพื่อให้คนอื่นเห็นได้ทันทีว่าเป็นประโยชน์ ;-)
Tubeless

การเข้ารหัสใช้งานได้จริงหรือไม่โดยการให้ ssl ยืนยันว่าไม่มีใคร? จากเอกสาร haproxy "ถ้าตั้งค่าเป็น 'none' ใบรับรองเซิร์ฟเวอร์จะไม่ได้รับการตรวจสอบในกรณีอื่นใบรับรองที่ระบุโดยเซิร์ฟเวอร์จะได้รับการตรวจสอบโดยใช้ CA จาก 'ca-file'" มีคนช่วยอธิบายเรื่องนี้ได้ไหม
mjm

ด้วยssl verify noneปริมาณการใช้งานระหว่าง HAProxy และเซิร์ฟเวอร์ส่วนหลังยังคงถูกเข้ารหัส แต่ความถูกต้องของใบรับรอง SSL ของแบ็กเอนด์ไม่ได้ถูกตรวจสอบ
ยาง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.