Score:0

HAProxy อยู่หน้า Stunnel ด้วย SNI ได้หรือไม่

ธง cn

ฉันมีการยุติ SSL ที่ใช้งานได้กับ STunnel ต่อหน้า HAproxy

เมื่อเร็ว ๆ นี้ เรื่องของการเพิ่มการรองรับสำหรับ HTTP/2 ได้ถูกโยนทิ้งไป นั่นเป็นเรื่องง่ายด้วย HAProxy แต่ด้วยข้อจำกัด STunnel จะต้องอยู่ต่อไป

เหตุผลที่ STunnel จำเป็นต้องอยู่คือ SNI ประมาณ 17,000 บรรทัดและความเป็นไปได้ในการจัดการสิ่งเหล่านั้นผ่าน API ที่มีอยู่แล้ว

ฉันสามารถเพิ่มรายการใบรับรองสำหรับ HAProxy ที่มี SNI ได้ดีมาก greps และ echos สองสามตัวจะช่วยได้

อย่างไรก็ตาม ระหว่างการค้นหาของฉัน ฉันยังไม่พบใครวาง HAProxy ไว้หน้า STunnel ไว้หน้า HAProxy นั่นเป็นแนวทางที่ผิดหรือเปล่า?

นี่คือสิ่งที่ฉันเริ่มดำเนินการแล้ว (ยังไม่มี SNIs อยู่ในนั้น - 17,000 รายการอาจมากเกินไปสำหรับการโพสต์):

ส่วนหน้า HAProxy (ซึ่งฉันต้องการเพิ่มการรองรับ HTTP/2) พร้อมการเข้ารหัสไปยัง STunnel:

ฟังส่วนหน้า
ผูก 192.168.1.100:443 โปร่งใส  
โหมด http  
เซิร์ฟเวอร์ stunnel 127.0.0.100:443 ssl ยืนยันไม่มี

อุโมงค์

[อุโมงค์]
    ใบรับรอง = /etc/ssl/certs/cert.pem
    ยันต์ =
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256
-SHA384:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA
256:AES256-GCM-SHA384:AES256-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-
RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-
RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:AES128-GCM-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
    ยอมรับ = 127.0.0.100:443
    เชื่อมต่อ = 127.0.0.100:80
    ล่าช้า = ใช่
    ตัวเลือก = NO_SSLv3
    ตัวเลือก = NO_TLSv1
    ตัวเลือก = NO_TLSv1.1
    ตัวเลือก = NO_TLSv1.3
    ตัวเลือก = CIPHER_SERVER_PREFERENCE
    ตัวเลือก = DONT_INSERT_EMPTY_FRAGMENTS
    เจรจาใหม่ = ไม่
    โปรโตคอล = พร็อกซี่
    ท้องถิ่น = 127.0.0.100
    TIMEOUTปิด = 0

HAProxy "แบ็กเอนด์"

ฟังเว็บ
ââââผูก 127.0.0.100:80 ยอมรับพร็อกซีโปร่งใส
ââââโหมด http
ââââสมดุลอย่างน้อยคอน
ââââacl SSL-443 src 127.0.0.100
ââââtcp-ร้องขอการเชื่อมต่อคาดหวังพร็อกซีเลเยอร์ 4 ถ้า STunnel
ââââตัวเลือก http-keep-alive
ââââหมดเวลา http-request 5s
ââââหมดเวลาอุโมงค์ 1 ชม
ââââตัวเลือกส่งซ้ำ
ââââตัวเลือก ยกเลิกปิด
ââââmaxconn 40000
ââââตัวเลือก httplog
ââââเซิร์ฟเวอร์ server1 192.168.1.98:80 ตรวจสอบ
ââââเซิร์ฟเวอร์ server2 192.168.1.99:80 ตรวจสอบ

ฉันถือว่าต้องมีการเข้ารหัสจาก HAProxy ถึง STunnel และฉันจำเป็นต้องคำนึงถึงโปรโตคอลที่ไม่ตรงกันระหว่างโปรโตคอลเหล่านั้น

เวอร์ชัน STunnel ของ HAProxy คืออะไร การเชื่อมต่อคำขอ tcp คาดหวังพร็อกซีเลเยอร์ 4 หาก STunnel อยากจะเป็น?

ความช่วยเหลือใด ๆ ในการรับการสนับสนุน HTTP/2 กับ STunnel นั้นได้รับการชื่นชมอย่างมาก เช่นเดียวกับการได้รับ "อย่าทำอย่างนั้น มันผิด"

ขอขอบคุณ,

Marco avatar
in flag
ฉันถือว่า haproxy ต้องการ SNIs (ใบรับรอง) อยู่แล้ว เพราะมันต้องจัดการการติดต่อกับลูกค้า จะทำอย่างไรหากไม่มีใบรับรอง?
Marco avatar
in flag
หาก haproxy ไม่มีใบรับรอง ก็จะไม่เห็นเนื้อหาของคำขอและไม่สามารถพูดคุย HTTP/2 กับไคลเอนต์ได้ คุณต้องการทำให้ข้อมูลไม่เปลี่ยนแปลงใน stunnel แต่นั่นหมายความว่า stunnel ต้องทำ HTTP/2 และคุณอยู่ที่จุดเริ่มต้น สรุป: จะใช้งานได้ก็ต่อเมื่อ hproxy มีใบรับรองในการถอดรหัส ssl และเข้ารหัสอีกครั้งเพื่อส่งไปยัง stunnel สามารถทำงานได้ แต่อาจนำไปสู่ปัญหาด้านประสิทธิภาพ
Ai N. avatar
cn flag
@Marco นั่นคือความคิดของฉันเช่นกัน และไม่ใช่ว่าฉันสามารถใช้สัญลักษณ์แทนหรือใบรับรองจำลองได้เนื่องจาก SNI ที่ต้องอยู่ในส่วนหน้า "ส่วนหน้า" หวังว่าฉันจะทำการกำหนดค่าไฮบริดแบบพาสทรูออฟโหลดได้ ไม่ว่าจะด้วยวิธีใด ตอนนี้ฉันกำลังย้ายทุกอย่างไปที่ HAProxy และทำรายการใบรับรองและอัปเดตแบบไดนามิกโดยใช้ [ลิงก์](https://www.haproxy.com/blog/dynamic-ssl-certificate-storage-in-haproxy/) )
Marco avatar
in flag
ฉันจะทิ้ง stunnel และใช้ haproxy เท่านั้น การจัดการใบรับรองใน haproxy นั้นง่ายมาก เพียงใส่ทั้งหมดไว้ในไดเร็กทอรีเดียว haproxy หาอันที่จะใช้เอง แต่ฉันไม่มี 17,000 ในสภาพแวดล้อมของฉัน ฉันคิดว่า haproxy เวอร์ชันใหม่กว่าตรวจพบการเปลี่ยนแปลงและโหลดตัวเองใหม่ ดีที่สุด ทดสอบบนพอร์ตอื่นควบคู่ไปกับการกำหนดค่า Stunnel ของคุณ
Ai N. avatar
cn flag
@Marco ฉันตัดสินใจที่จะเปลี่ยนทั้งหมดเป็น HAProxy ซึ่งก็สมเหตุสมผลดี คุณช่วยกรุณาโพสต์ความคิดเห็นของคุณเป็นคำตอบเพื่อให้ฉันยอมรับได้ไหม ขอบคุณมาก.
Score:0
ธง in

แฮพร็อกซี่ สามารถดูข้อมูล (โปรโตคอล HTTP / 2) ได้หากมีใบรับรองจะถอดรหัส ssl วิธี แฮพร็อกซี่ ต้องการใบรับรองเดียวกันกับ ตะลึง.

หากสิ่งนี้ใช้งานได้ในทางใดทางหนึ่งนี่หมายถึงการถอดรหัส แฮพร็อกซี่ และเข้ารหัสอีกครั้งสำหรับ ตะลึงเพื่อให้ถอดรหัสอีกครั้ง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา