เรามีบริการภายในที่ทำงานบน HTTP โดยมีอินสแตนซ์ Apache 2.4 (Debian Bullseye) อยู่ข้างหน้าเป็นพร็อกซีสำหรับ HTTPS Apache และ HTTPS พร้อมใช้งานแล้ว แต่มีข้อกำหนดเพิ่มเติมสำหรับใบรับรองไคลเอ็นต์ โดยเฉพาะคำขอ GET และ HEAD อาจดำเนินการโดยไม่ระบุชื่อ แต่วิธีอื่นๆ ทั้งหมดต้องแสดงใบรับรองไคลเอ็นต์ที่ถูกต้องซึ่งตรงกับเงื่อนไขบางประการ
ซอฟต์แวร์ที่เราสร้างมีเป้าหมายที่ IIS ดังนั้น Apache จึงเป็นบางอย่างที่ไม่ทราบจำนวนสำหรับเรา ความพยายามของเราในการปรับการกำหนดค่าที่เราได้รับมามีส่วนไซต์ของการกำหนดค่า (ละเว้นคำสั่งเส้นทางไฟล์ใบรับรอง) เป็น:
SSLVerifyClient เป็นทางเลือก
SSL ตรวจสอบความลึก 10
ProxyPass /internal http://<internalIP>:/internal
ProxyPassReverse /internal http://<internalIP>:/internal
SSLOptions +StdEnvVars
<สถานที่ /ภายใน>
คำสั่งปฏิเสธอนุญาต
อนุญาตจากทั้งหมด
<ขีดจำกัดยกเว้น GET>
SSLRequire ( %{SSL_CLIENT_S_DN_O} eq "(org)" และ %{SSL_CLIENT_S_DN_OU} eq "(unit)" and %{SSL_CLIENT_S_CN} eq "(name)" )
</จำกัดยกเว้น>
</สถานที่>
เรายังไม่ได้ลองใช้กับใบรับรองไคลเอนต์ เช่น POST เพราะ GET ง่ายๆ https://<proxy>/internal
ตอนนี้ล้มเหลวด้วยข้อความ 403 และ error.log:
AH02229: การเข้าถึงพร็อกซี:http://{internalIP}/internal ล้มเหลว เหตุผล: ไม่ปฏิบัติตามนิพจน์ข้อกำหนด SSL
เมื่อมองแวบแรกดูเหมือนว่า SSLRต้องการ
มีการใช้เช็คกับ GET เช่นกัน ซึ่งตรงกันข้ามกับ <LimitExcept>
.
มีชุดคำสั่งที่เราสามารถใช้เพื่อให้ได้พฤติกรรมที่ต้องการหรือไม่? (เป็นการดีที่จะย้ายออกจากสิ่งที่เลิกใช้แล้ว SSLRต้องการ
เช่นกัน.)