หลังจากอัพเกรด Apache2 ไปเป็นเวอร์ชั่น 2.2.31 เมื่อเร็ว ๆ นี้ฉันพบพฤติกรรมแปลก ๆ ในการตั้งค่า SSL VirtualHost
บางเว็บไซต์ที่ฉันโฮสต์กำลังแสดงใบรับรองสำหรับโฮสต์เริ่มต้นแม้ว่าลูกค้าจะรับServer Name Identification
รู้และสิ่งนี้เกิดขึ้นกับพวกเขาเพียงไม่กี่คน สิ่งนี้แสดงให้เห็นว่าเป็นคำเตือนหนังสือเดินทางของ Firefox / Chrome ทั่วไปเกี่ยวกับคุณที่อาจถูกหลอกลวงหากคุณกำลังค้นหาธนาคารบ้านของคุณ แต่นั่นไม่ใช่กรณี
เพื่อความชัดเจนหากเซิร์ฟเวอร์host.hostingdomain.org
มี SSL ของตัวเองพยายามเข้าถึงhttps://www.hostedsite.org
ใบรับรองรายงานhost.hostingdomain.org
แต่มีเพียงไม่กี่คนที่https://www.hostedsite.me
รายงานใบรับรองที่ถูกต้อง
ไซต์ทั้งหมดโฮสต์บนที่อยู่ IP เดียวกันบนพอร์ต 443 ความจริงก็คือ VirtualHosting ทำงานบนฝั่ง HTTP และเปลี่ยนเส้นทางไคลเอนต์ที่ทราบ SNI ไปยัง SSL โดยอัตโนมัติดังนั้นจึงเข้ากันได้กับไคลเอ็นต์ SNI ที่ไม่รู้จัก
การตรวจสอบบันทึกข้อผิดพลาดสำหรับการละเมิด VirtualHosts แสดงข้อความต่อไปนี้
[Tue Dec 25 16:02:45 2012] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] (/path/to/www.site.org.conf:20)
และอันที่จริง vhost นั้นได้รับการกำหนดค่าอย่างถูกต้องด้วย SSLCertificateFile
คำถามชัดเจน: จะแก้ไขได้อย่างไร?