ฉันค้นหาอินเทอร์เน็ตอย่างกว้างขวาง แต่ไม่สามารถหาวิธีแก้ไขปัญหานี้ได้

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

การกำหนดค่า HAProxy บางส่วนของฉันคือ:

listen authentication_service
    bind xxx.xxx.xxx.111:2222 ssl crt /etc/ssl/certs/mycert.pem ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:!RC4+R$
    balance  roundrobin
    option  tcpka
    option  tcplog
    server serv1 xxx.xxx.xxx.xx1:2222  check inter 2000 rise 2 fall 5
    server serv2 xxx.xxx.xxx.xx2:2222  check inter 2000 rise 2 fall 5

ในการทำซ้ำ serv1 ด้วยตัวเองหรือร่วมกับ serv2 ทำงานได้ดี เมื่อฉันลบ serv1 เท่านั้นที่ฉันจะได้รับความล้มเหลวของ SSL

บันทึก HAProxy สำหรับความล้มเหลวคือ:

Jan 3 14:21:08 serv-2 haproxy[9075]: [client ip address]:xyz [03/Jan/2015:14:21:08.734] authentication_service/1: SSL handshake failure

จะมีใครสามารถช่วยฉันได้บ้าง

ขอบคุณมากล่วงหน้า

answer

serv2ดูเหมือนว่าSSL stack ของคุณจะถูกจับ

สิ่งที่ต้องตรวจสอบ:

  • ไฟล์ใบรับรองเหมือนกันหรือไม่
  • การกำหนดค่า haproxy เหมือนกันและโหลดอยู่ในปัจจุบันหรือไม่
  • ไลบรารี SSL เหมือนกันหรือไม่