ใครส่งใบรับรองไคลเอนต์ผ่านพร็อกซี?
แยกข้อมูลรับรอง mTLS ของปลายทางออกจากข้อมูลรับรองของพร็อกซีและจากใบรับรองที่ Apache ใช้เมื่อสร้างเซสชัน TLS ต้นทางของตนเอง
ใน HTTPS ผ่าน CONNECT ทั่วไป แอปพลิเคชันจะส่งใบรับรองไคลเอนต์ของเว็บไซต์ระหว่างการจับมือ TLS กับปลายทางของตนเอง พร็อกซีเพียงส่งต่อไบต์เท่านั้น ไม่ได้กลายเป็นไคลเอนต์ TLS ของเว็บไซต์โดยอัตโนมัติ
| ข้อมูลรับรอง | เจ้าของ/การเชื่อมต่อ |
|---|---|
| ชื่อผู้ใช้/รหัสผ่านพร็อกซี | การเข้าถึงพร็อกซีของไคลเอนต์ |
| ใบรับรองไคลเอนต์และคีย์ส่วนตัวของเว็บไซต์ | เซสชัน TLS ของแอปพลิเคชันกับปลายทาง |
| ใบรับรองไคลเอนต์ต้นทางของเซิร์ฟเวอร์พร็อกซี | เซสชัน TLS ที่พร็อกซีเองเป็นผู้เริ่ม |
บทบาทเหล่านี้อยู่ร่วมกันได้ ไม่จำเป็นต้องอัปโหลดคีย์ส่วนตัวของเว็บไซต์ไปยังพร็อกซีอุโมงค์ธรรมดาเพื่อให้ mTLS ไปยังปลายทางทำงาน หลังการส่งต่อ CONNECT ให้ใช้การกำหนดค่าใบรับรองไคลเอนต์ปลายทางตามปกติของแอปพลิเคชันและตรวจสอบใบรับรองเซิร์ฟเวอร์ของเว็บไซต์ต่อไป
SSLProxyMachineCertificateFile ของ Apache ให้ข้อมูลรับรองเมื่อ Apache สร้างเซสชัน TLS ต้นทางของตนเอง คำแนะนำเกี่ยวกับไฟล์นั้นไม่ได้พิสูจน์ว่าไคลเอนต์ทุกตัวที่ใช้อุโมงค์ส่งต่อแบบทึบต้องกำหนดค่าไฟล์นั้น
การดักจับ TLS ยุติเซสชันที่ตัวกลางและเปลี่ยนความเป็นเจ้าของนี้ ตรวจสอบว่าตัวตนไคลเอนต์ที่จำเป็นสามารถผ่านการจัดวางนั้นได้หรือไม่ แทนที่จะถือว่าการคัดลอกใบรับรองรักษาการพิสูจน์ตัวตนตั้งแต่ต้นจนจบ
เมื่อเกิดความล้มเหลว ให้บันทึกว่าคำขอหยุดที่การเข้าสู่ระบบพร็อกซี ที่ TLS ของปลายทาง หรือที่การแลกเปลี่ยนของแอปพลิเคชันในภายหลัง วางข้อมูลรับรองไว้บนการเชื่อมต่อที่ร้องขอข้อมูลนั้นจริง ๆ