Máy chủ có thể nhận biết SSL nhưng không có chứng chỉ được định cấu hình [Gợi ý: SSLCertertFile] Lỗi lỗi


21

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 Identificationbiế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.orgcó SSL riêng, cố gắng truy cập https://www.hostedsite.orgchứng chỉ báo cáo host.hostingdomain.org, nhưng một số https://www.hostedsite.mebá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 đó?

Câu trả lời:


38

Nó xảy ra rằng nó có thể là một lỗi trong phiên bản gần đây nhất của Apache.

Giải pháp 1: hạ cấp xuống ổn định mới nhất

Giải pháp 2: chỉnh sửa listen.conf

Thay thế Listen *:443(hoặc Listen 443theo thiết lập của bạn) bằngListen *:443 http

tín dụng


1
Cảm ơn bạn đã chỉ ra điều này! Bạn đã cứu tôi rất nhiều thắc mắc xung quanh ... Tôi tự hỏi tại sao apache lại khiến cuộc sống khó khăn hơn!?
tftd

2
Giải pháp 2: nên là httpd.conf không lắng nghe.conf
zzapper 17/03/2016

1
Lưu ý, điều này đã xảy ra với tôi sáng nay ... cuối cùng tôi cần thêm "http" đó vào dòng nghe trong /etc/httpd/conf.d/ssl.conf - oh, tôi không phải hạ cấp ...
Scott

Các giải pháp là thay thế, bạn không cần hạ cấp nếu thêm lắng nghe
usr-local-ΕΨΗΕΛΩΝ

10

Tôi có cùng một vấn đề chính xác, và những gì làm việc cho tôi đơn giản đến không ngờ

chỉnh sửa /etc/apache2/ports.conf (đối với Ubuntu, hoặc httpd.conf)

thay đổi "Nghe 443" thành "Nghe 443 http" trong ssl_module


Điều này đã có trong câu trả lời được chấp nhận.
Sven

2
Câu trả lời được chấp nhận dường như đã lỗi thời. Câu trả lời này hữu ích và chính xác hơn. +1
Parag

Câu trả lời này có thể áp dụng cho apache trên ngăn đèn apache2.4 của tôi, ubfox. Câu trả lời khác là "lắng nghe" - nên là port.conf
Nick

2

Một giải pháp khác cho việc này là đảm bảo rằng tất cả: 443 vhost của bạn bao gồm cấu hình TLS.

Vấn đề này gần đây đã được giới thiệu trong Debian wheezy và tôi đã nhận được giải pháp từ http://blog.noizeramp.com/2010/10/03/apache-2-and-ssl-configuration/ .


Đây là vấn đề của tôi. Tôi đã sao chép một vhost trong httpd.confnhưng không bao gồm các dòng chỉ định cấu hình TLS. Việc thêm các cài đặt TLS khác nhau trở lại (SSLEngine, SSLCodesSuite, SSLCertertFile và SSLCertertKeyFile) đã khắc phục sự cố.
rinogo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.