Sau khi nâng cấp Apache2 lên phiên bản 2.2.31 gần đây, tôi đã tìm thấy một hành vi lạ trong thiết lập SSL Virtualhost.
Một số trang web tôi đang lưu trữ đang hiển thị chứng chỉ cho máy chủ mặc định ngay cả khi khách hàng Server Name Identification
biết và điều này chỉ xảy ra với một vài trong số họ. Điều này cho thấy cảnh báo hộ chiếu phổ biến của Firefox / Chrome về việc bạn có thể bị lừa đảo nếu bạn đang duyệt ngân hàng tại nhà, nhưng thực tế không phải vậy.
Để rõ ràng, nếu máy chủ host.hostingdomain.org
có SSL riêng, cố gắng truy cập https://www.hostedsite.org
chứng chỉ báo cáo host.hostingdomain.org
, nhưng một số https://www.hostedsite.me
báo cáo chứng chỉ chính xác.
Tất cả các trang web được lưu trữ trên cùng một địa chỉ IP, trên cổng 443. Sự thật là Virtualhosting hoạt động ở phía HTTP và tự động chuyển hướng các máy khách nhận biết SNI sang SSL, do đó, nó tương thích ngược với các máy khách không biết SNI.
Kiểm tra nhật ký lỗi cho các Virtualhost vi phạm được hiển thị văn bản sau
[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)
và trên thực tế, vhost đã được cấu hình đúng với SSLCertertFile.
Câu hỏi rất rõ ràng: làm thế nào để khắc phục điều đó?