ฉันจะแสดงใบรับรอง TLS ที่แตกต่างกันสำหรับแหล่งที่อยู่ต่าง


0

ฉันต้องการให้บริการเว็บไซต์เดียวกันที่มีใบรับรอง TLS ที่แตกต่างกันสำหรับช่วงที่อยู่ IP ของแหล่งที่มาที่ต่างกัน ตัวอย่างเช่นในหนึ่งช่วงตึกฉันคาดว่าผู้ใช้จะเชื่อมต่อกับเบราว์เซอร์ที่ติดตั้ง CA ภายใน บริษัท ไว้ในที่เก็บความเชื่อถือรูทของลูกค้า ในบล็อกอื่นจะมีกลุ่มผู้ใช้อีกกลุ่มที่ไม่มี CA ท้องถิ่นนั้นดังนั้นฉันต้องการแสดงใบรับรองที่ลงนามด้วยตนเองหรือใบรับรอง CA ของ บริษัท ของพวกเขา ในอีกบล็อกหนึ่งจะเป็นการเชื่อมต่อ M2M ซึ่งใบรับรองแบบลงนามด้วยตนเองง่าย ๆ คือสิ่งที่จำเป็นทั้งหมด

ฉันได้อ่านเกี่ยวกับการใช้ ssl_multicert.config ใน Apache Traffic Server หรือใช้ Server Name Indication (SNI) แต่ผู้ใช้ทั้งหมดจัดการกับ IP ปลายทาง (เซิร์ฟเวอร์) ไม่ใช่ IP ต้นทาง (ไคลเอนต์)

ฉันรู้ว่าฉันสามารถเรียกใช้ Apache บนพอร์ตแยกสำหรับแต่ละใบรับรองแล้วเล่นกับเป้าหมายการกระโดด REDIRECT ใน iptables ฉันกำลังมองหาวิธีที่สะอาดในการทำสิ่งนี้โดยใช้เพียงตัวเลือกการกำหนดค่า Apache (2.4) ใครรู้บ้าง


1
ที่เกี่ยวข้อง: serverfault.com/questions/296617/…
Bob

สิ่งที่คุณอธิบายดูเหมือนว่าจะเป็นการทำลายหลักการพื้นฐานของ https ที่ใบรับรองซึ่งลงนามโดย Root CA ที่เชื่อถือได้บ่งชี้ว่าการเชื่อมต่อที่เกิดขึ้นจริง ๆ แล้วพวกเขามีใบรับรองอะไร มีเหตุผลที่แม้แต่ load balancer ก็สามารถทำงานได้เหมือนกัน
Ramhound

@ บ๊อบคำถามที่เกี่ยวข้องที่เหมาะสมมาก ค้นหาในขณะที่ฉันพยายามฉันไม่พบสิ่งนั้น เนื่องจากฉันจะไม่เปลี่ยน docroots หรืออะไรเลยเพียงแค่ระบุใบรับรองที่แตกต่างกันฉันก็อาจต้องใส่คำสั่ง SSLCertificateFile และ SSLCertificateKeyFile ภายใน If, ElseIf และ Else หากมีคนชนะฉันเพื่อทดสอบสิ่งนี้และโพสต์คำตอบถ้าใช้งานได้พวกเขาจะได้เครื่องหมายถูกสีเขียว!
petiepooo

เมื่อเปิดใช้ SNI คุณสามารถให้บริการหลายโดเมนจาก IP เดียวกันและพอร์ตเดียวกันกับใบรับรอง SSL ที่แตกต่างกัน
Alex

@Ramhound ฉันจะเห็นด้วยกับคุณถ้าเรากำลังพูดถึง CA จริงและอินเทอร์เน็ต IP / FQDNs ในกรณีของฉันฉันกำลังพูดถึงเครือข่ายภายในที่มี FQDN ที่ไม่ถูกต้องบนโฮสต์ที่มีมากกว่าหนึ่งอินเตอร์เฟสที่มี IP RFC1918 ที่แตกต่างกัน CA ภายในของ บริษัท ของฉันไม่มีความถูกต้องภายในเครือข่ายอื่นและในทางกลับกัน และไคลเอนต์ M2M ไม่ได้ติดตั้ง CA รูตในเครื่องเหล่านั้น
petiepooo

คำตอบ:


2

หากคุณต้องการใช้เว็บเซิร์ฟเวอร์SNI ที่ทราบแล้วคุณสามารถใช้ตรรกะต่อไปนี้บนเว็บเซิร์ฟเวอร์เดียวกันโดยใช้ที่อยู่ IP เดียวสำหรับเซิร์ฟเวอร์ HTTP ที่มีใบรับรอง SSL ที่แตกต่างกันสำหรับกลุ่มผู้ใช้แต่ละคนตามที่อยู่ IP ของพวกเขา

ผู้ใช้จะถูกส่งไปยังเว็บเซิร์ฟเวอร์โดยเฉพาะตามที่อยู่ IP ของพวกเขาด้วยความช่วยเหลือของHAproxy

HAproxy2apache

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.