为什么 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>
答案1
这是因为您的 VirtualHost 指令与您的 ServerName 指令和/或证书的 CN 不匹配。这三者必须相同,除非您拥有通配符证书,其中非通配符部分必须相同。
答案2
这不是一个错误,而是一个警告信息。
您之所以获得该信息是因为 1) 您已更新了 Apache 版本,并且 2) 您有 2 个使用相同 IP 地址的 SSL VirtualHosts(而不是使用 2 个 IP)。
由于您共享 IP,不支持 SNI 的浏览器只会访问第一个网站,而永远不会访问第二个网站。