Tại sao apache httpd nói với tôi rằng các máy chủ ảo dựa trên tên của tôi chỉ hoạt động với trình duyệt kích hoạt SNI (RFC 4366)


9

Tại sao apache cho tôi thông báo lỗi này trong nhật ký của tôi? Có phải là một dương tính giả?

[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

Gần đây tôi đã nâng cấp từ Centos 5.7 lên 6.3 và bằng phiên bản httpd mới hơn. Tôi đã luôn luôn thực hiện các cấu hình shost virtualhost của mình như dưới đây. Trường hợp tất cả các tên miền chia sẻ cùng một chứng chỉ (hầu hết / luôn luôn là ký tự đại diện) chia sẻ cùng một ip. Nhưng chưa bao giờ nhận được thông báo lỗi này trước đây (hoặc tôi, có lẽ tôi chưa tìm đủ trong nhật ký của mình?) Từ những gì tôi đã học được nên hoạt động mà không cần SNI (Chỉ định tên máy chủ)

Đây là phần có liên quan của tệp httpd.conf của tôi. Không có Virtualhost này, tôi không nhận được thông báo lỗi.

NameVirtualHost 10.101.0.135:443

<VirtualHost 10.101.0.135:443>
  ServerName sub1.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

<VirtualHost 10.101.0.135:443>
  ServerName sub2.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

Câu trả lời:


7

Đó là vì chỉ thị Virtualhost của bạn không khớp với chỉ thị ServerName của bạn và / hoặc CN của chứng chỉ. Tất cả ba cần phải giống hệt nhau, trừ khi bạn có chứng chỉ ký tự đại diện trong đó các phần không hoang dã phải giống hệt nhau.


Vậy câu trả lời ở đây là thay đổi <VirtualHost 10.101.0.135:443>dòng <VirtualHost sub2.domain.com:443>nào? Có tiềm năng?
MichaelJones

@MichaelJones điều này có giải quyết được vấn đề không?
Fernando Santiago

@FernandoSantiago Bây giờ tôi trả tiền cho các địa chỉ IP khác nhau cho các máy chủ ảo của mình vì tôi thấy SNI không đủ tin cậy. Và tôi có những địa chỉ IP trong VirtualHosttờ khai của tôi .
MichaelJones

1
Điều này giải quyết hoàn hảo vấn đề của tôi. Tôi đã sử dụng một VirtualHostthẻ hoang dã nhưng ServerNamechỉ thị phù hợp với chứng chỉ CN. Cả 3 khớp và viola! PS: Câu trả lời này serverfault.com/questions/578061/ cho bạn biết cách lấy CN bạn đặt trong chứng chỉ RSA của bạn
3bdalla

3

Đó không phải là một lỗi, đó là một thông điệp cảnh báo.

Và bạn đang nhận được vì 1) bạn đã cập nhật phiên bản Apache của mình và 2) bạn có 2 Virtual Virtualhost sử dụng cùng một địa chỉ IP chính xác (trái ngược với việc sử dụng 2 IP).

Vì bạn đang chia sẻ IP, các trình duyệt không có hỗ trợ SNI sẽ chỉ có trang web đầu tiên và không bao giờ là trang web thứ hai.


Các trình duyệt không có SNI sẽ có được chứng chỉ được cấu hình cho trang web đầu tiên - nhưng để thực sự ánh xạ chúng tới một vhost để phục vụ yêu cầu, Hosttiêu đề được kiểm tra bình thường.
Shane Madden

@ShaneMadden, tôi không tin đó là chính xác vì Máy chủ: tiêu đề KHÔNG được kiểm tra TRƯỚC KHI kết nối SSL được thiết lập. Và đó là toàn bộ quan điểm của việc có hỗ trợ SNI. Hoặc cần 1 IP cho mỗi SSL VH khác. Vì vậy, không có SNI, Apache sẽ mặc định là VH đầu tiên được tìm thấy với địa chỉ IP đó, tiêu đề Host: thực tế bị bỏ qua.
đúng

... Nếu không, bạn có thể thực hiện 100s SSL NameBasingVirtualhost trên 1 địa chỉ IP duy nhất và chúng tôi biết điều đó không đúng (không có hỗ trợ SNI bởi máy chủ và máy khách).
đúng

4
Otherwise you could do 100s of SSL NameBasedVirtualHosts on 1 single IP address, and we know that's not true (without SNI support by server and client)Bạn có thể. Việc sử dụng thông thường này là khi tất cả đều có cùng một chứng chỉ, ký tự đại diện hoặc chứng chỉ tên thay thế thường. Nhưng giả sử bạn có hai vhost với các chứng chỉ SSL riêng - domain1.com và domain2.com, với domain1.com được định cấu hình trước. Một trình duyệt không có khả năng SNI yêu cầu domain2.com - họ gặp lỗi không khớp tên miền chứng chỉ, vì họ đã gửi chứng chỉ domain1 - nhưng nếu họ nhấp qua nó, họ sẽ nhận được nội dung domain2.
Shane Madden

1
Nếu tiêu đề máy chủ bị bỏ qua, ngay cả trường hợp đơn giản và được triển khai rộng rãi của "chứng chỉ ký tự đại diện có nhiều vhost dựa trên tên" sẽ bị hỏng. Dù sao, đây là một vài ví dụ về các câu hỏi mà tôi đã trả lời ở đây nơi hành vi đó đã được hiển thị; serverfault.com/q/292637 serverfault.com/q/330212
Shane Madden
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.