เรากำลังประสบปัญหาเกี่ยวกับการกำหนดค่าที่ดูเหมือนง่ายบน Apache 2.4 ดูเหมือนว่าเราจะไม่ได้รับใบรับรองที่ถูกต้องในขณะที่ใช้โฮสต์เสมือน site2.net เราได้รับใบรับรองของ site1.net เสมอ นี่คือของเรา apacectl -S
:
การกำหนดค่า VirtualHost:
*:446 เป็น NameVirtualHost
เซิร์ฟเวอร์เริ่มต้น site1.net (/opt/rh/httpd24/root/etc/httpd/sites-enable/site1.conf:3)
พอร์ต 446 namevhost site1.net (/opt/rh/httpd24/root/etc/httpd/sites-enable/site1.conf:3)
พอร์ต 446 namevhost site2.net (/opt/rh/httpd24/root/etc/httpd/sites-enable/site2.conf:3)
*:444 other.net (/opt/rh/httpd24/root/etc/httpd/sites-enable/other.conf:2)
นี่คือการกำหนดค่า VH:
$ cat /opt/rh/httpd24/root/etc/httpd/sites-enable/site1.conf
<โฮสต์เสมือน *:446>
ชื่อเซิร์ฟเวอร์ site1.net
รูทเอกสาร /www/site1
<ไดเรกทอรี /www/site1>
AllowOverride ทั้งหมด
ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>
SSLEngine เปิดอยู่
SSLCertificateKeyFile /opt/rh/httpd24/root/etc/httpd/conf/certs/site1.key
SSLCertificateFile /opt/rh/httpd24/root/etc/httpd/conf/certs/site1.pem
</เวอร์ชวลโฮสต์>
$ cat /opt/rh/httpd24/root/etc/httpd/sites-enable/site2.conf
<โฮสต์เสมือน *:446>
ชื่อเซิร์ฟเวอร์ site2.net
DocumentRoot "/www/site1/xyz"
<ไดเรกทอรี "/www/site1/xyz">
AllowOverride ทั้งหมด
ต้องได้รับอนุญาตทั้งหมด
ตัวเลือก -ดัชนี
</ไดเร็กทอรี>
SSLCertificateKeyFile /opt/rh/httpd24/root/etc/httpd/conf/certs/site2.key
SSLCertificateFile /opt/rh/httpd24/root/etc/httpd/conf/certs/site2.pem
</เวอร์ชวลโฮสต์>
ไฟล์คอนเฟิร์ม /opt/rh/httpd24/root/etc/httpd/conf.d/ssl.conf
ยังไม่ได้กำหนด VirtualHost
หากเราสลับใบรับรองและให้โฮสต์เสมือนเครื่องแรกโหลดใบรับรองที่สอง แสดงว่าถูกต้อง (กล่าวคือ ไม่มีปัญหากับตัวใบรับรองเอง)
เรากำลังทดสอบกับ openssl s_client -เชื่อมต่อ myip:446 -ชื่อเซิร์ฟเวอร์ site2.net
ทำไมเราถึงมีพฤติกรรมแปลก ๆ นี้? ขอบคุณมาก!