Httpd

為什麼 apache httpd 告訴我基於名稱的虛擬主機僅適用於啟用 SNI 的瀏覽器(RFC 4366)

  • October 3, 2012

為什麼 apache 在我的日誌中給我這個錯誤資訊?是誤報嗎?

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

我最近從 Centos 5.7 升級到 6.3,然後升級到更新的 httpd 版本。我總是像下面這樣進行我的 ssl 虛擬主機配置。共享相同證書的所有域(主要/總是萬用字元證書)共享相同的 ip。但是以前從未收到過此錯誤消息(或者我有沒有,也許我的日誌中查看的內容不夠多?)據我所知,這應該在沒有 SNI(伺服器名稱指示)的情況下工作

這是我的 httpd.conf 文件的相關部分。如果沒有這個 VirtualHost,我不會收到錯誤消息。

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>

這是因為您的 VirtualHost 指令與您的 ServerName 指令和/或證書的 CN 不匹配。這三個都必須相同,除非您有萬用字元證書,其中非通配部分必須相同。

這不是錯誤,而是警告資訊。

你得到它是因為 1)你已經更新了你的 Apache 版本和 2)你有 2 個 SSL 虛擬主機使用相同的確切 IP 地址(而不是使用 2 個 IP)。

由於您共享 IP,因此不支持 SNI 的瀏覽器只會獲得第一個網站,而永遠不會獲得第二個網站。

引用自:https://serverfault.com/questions/434599