Httpd
為什麼 apache httpd 告訴我基於名稱的虛擬主機僅適用於啟用 SNI 的瀏覽器(RFC 4366)
為什麼 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 的瀏覽器只會獲得第一個網站,而永遠不會獲得第二個網站。