ฉันต้องการความช่วยเหลือในการกำหนดค่าการเชื่อมต่อ ssl ด้วยใบรับรองที่ลงนามเองระหว่าง Haproxy และ Squid ในกรณีของฉัน - Haproxy (192.168.10.110) เป็นส่วนหน้าและ SQUID (192.168.10.149) เป็นส่วนหลัง หากไม่มีใบรับรองที่ลงนามด้วยตนเองก็ทำงานได้อย่างสมบูรณ์ แต่ฉันจำเป็นต้องสร้างการเชื่อมต่อที่ปลอดภัยระหว่างส่วนหน้าและส่วนหลังเพื่อป้องกันการโจมตีของมนุษย์ที่อยู่ตรงกลาง
ดังนั้นฉันจึงสร้างใบรับรองที่ลงนามด้วยตนเองบนแบ็กเอนด์ (SQUID) ฉันสร้างไฟล์ 4 ไฟล์บนแบ็กเอนด์: Squid1.pem, Squid1.crt, Squid1.key, Squid1.csr หลังจากนั้นฉันคัดลอก squid1.pem ไปที่ส่วนหน้าโดยชี้ไปที่เขาใน Haproxy config (ในส่วนแบ็กเอนด์) แต่ก็ไม่ได้ผล...
ฉันตรวจสอบการทำงานของ Haproxy ตามคำขอ curl บน Haproxy:
ขด https://ifconfig.io -v --proxy 192.168.10.110:4483
- ลอง 192.168.10.110:1383...
- เชื่อมต่อกับพอร์ต 192.168.10.110 (192.168.10.110) 4483 (#0)
- จัดสรรบัฟเฟอร์การเชื่อมต่อ!
- สร้างอุโมงค์พร็อกซี HTTP เป็น ifconfig.io:443
*> เชื่อมต่อ ifconfig.io:443 HTTP/1.1
*> โฮสต์: ifconfig.io:443
*> ตัวแทนผู้ใช้: curl/7.77.0
*> การเชื่อมต่อพร็อกซี: Keep-Alive
*>
- ยกเลิกการเชื่อมต่อพร็อกซีแล้ว
- ขั้นตอนการเชื่อมต่อเสร็จสมบูรณ์!
- ปิดการเชื่อมต่อ 0
ขด: (56) Proxy CONNECT ถูกยกเลิก
ไฟล์ Conf Haproxy:
ทั่วโลก
บันทึก 127.0.0.1 local0
บันทึกการแจ้งเตือน 127.0.0.1 local1
แม็กซ์คอนน์ 4096
ดีมอนเริ่มต้น
เข้าสู่ระบบทั่วโลก
ตัวเลือก dontlognull
ลองใหม่ 3
ตัวเลือกการจัดส่งซ้ำ
แม็กซ์คอน2000
ไคลเอ็นต์หมดเวลา 30 วินาที
เซิร์ฟเวอร์หมดเวลา 30 วินาที
หมดเวลาเชื่อมต่อ 30 วินาที
ค่าเริ่มต้น
ส่วนหน้า Frontend4483
ผูก 192.168.10.110:4483
โหมด tcp
default_backend 4483
แบ็กเอนด์ 4483
โหมด tcp
วงเวียนสมดุล
ตัวเลือก tcplog
เซิร์ฟเวอร์ B1S1 192.168.10.149:4128 ssl ca-file /etc/ssl/private/squid1.pem
ไฟล์ Conf ของ SQUID:
acl localnet src 192.168.10.110/32.1
acl SSL_ports พอร์ต 443
acl Safe_ports พอร์ต 80 # http
acl Safe_ports พอร์ต 443 # https
acl Safe_ports พอร์ต 1025-65535 # พอร์ตที่ไม่ได้ลงทะเบียน
วิธีเชื่อมต่อ acl CONNECT
http_access อนุญาตให้ผู้จัดการ localhost
http_access ปฏิเสธผู้จัดการ
http_access อนุญาต localnet
http_access อนุญาต localhost
http_access ปฏิเสธทั้งหมด
http_port 192.168.10.149:4128
ในแบ็กเอนด์ tcpdump ให้พูดว่า:
kG......HTTP/1.1 400 คำขอไม่ถูกต้อง
เซิร์ฟเวอร์: ปลาหมึก/4.15
Mime-เวอร์ชัน: 1.0
วันที่: อังคาร 20 กรกฎาคม 2564 13:57:36 GMT
ประเภทเนื้อหา: text/html;charset=utf-8
ความยาวเนื้อหา: 3328
X-Squid-ข้อผิดพลาด: ERR_PROTOCOL_UNKNOWN 0
Vary: ยอมรับภาษา
ภาษาเนื้อหา: en
X-Cache: MISS จาก localhost
X-Cache-Lookup: ไม่มีจาก localhost:4128
ผ่าน: 1.1 localhost (squid/4.15)
การเชื่อมต่อ: ปิด
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><หัวเรื่อง>
ฉันมีคำถาม 2 ข้อ:
ฉันทำอะไรผิด แก้ไขอย่างไร
ฉันสามารถสร้างใบรับรองที่ลงนามด้วยตนเองบน Haproxy และคัดลอกในแต่ละแบ็กเอนด์ (SQUID proxy) ได้หรือไม่