ในคลัสเตอร์ k8s ของเรา เราใช้ NGINX Ingress Controller เพื่อร้องขอไคลเอ็นต์ (เว็บเบราว์เซอร์) เพื่อจัดเตรียมใบรับรองไคลเอ็นต์ หากใบรับรองถูกต้อง คำขอจะถูกพร็อกซีไปยังเซิร์ฟเวอร์ Apache เต็มรูปแบบภายในเครือข่ายส่วนตัว
การสื่อสาร nginx <> Apache ไม่ได้เข้ารหัส TLS
การใช้ตัวเลือก 'nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream: "true"' บน ngnix เซิร์ฟเวอร์ Apache จะได้รับส่วนหัวชื่อ X-Client-Certificate ที่มีใบรับรองไคลเอ็นต์แบบเต็มใน รูปแบบ PEM
ณ จุดนี้ฉันหลงทาง ฉันจะใช้ใบรับรองนี้แบบเดียวกับที่ฉันทำได้อย่างไร เมื่อส่งจากไคลเอนต์ไปยังเซิร์ฟเวอร์ Apache HTTP โดยตรง (ไม่ใช่ผ่านพร็อกซี)
ฉันตั้งใจจะใช้ DN ของข้อมูลใบรับรองเป็น REMOTE_USER เพื่อดำเนินการให้สิทธิ์ ldap (โดยใช้ mod_authnz_ldap) แต่ไม่สามารถทำได้ (REMOTE_USER มี '500')
ไม่มีพร็อกซีอยู่ระหว่างกลาง ฉันจะใช้คำสั่งนี้และมีชื่อผู้ใช้ในตัวแปรสภาพแวดล้อม REMOTE_USER ของ Apache โดยให้เข้าถึงเป็นชื่อผู้ใช้เพื่ออนุญาตใน LDAP:
ชื่อผู้ใช้ SSLU SSL_CLIENT_S_DN_CN
ใครเคยเจอแบบนี้บ้างช่วยแนะนำหน่อย ฉันรู้หมดแล้วและพบตัวเลือกต่างๆ
ขอบคุณล่วงหน้า.