为什么 apache httpd 告诉我基于名称的虚拟主机仅适用于启用 SNI 的浏览器(RFC 4366)

为什么 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>

答案1

这是因为您的 VirtualHost 指令与您的 ServerName 指令和/或证书的 CN 不匹配。这三者必须相同,除非您拥有通配符证书,其中非通配符部分必须相同。

答案2

这不是一个错误,而是一个警告信息。

您之所以获得该信息是因为 1) 您已更新了 Apache 版本,并且 2) 您有 2 个使用相同 IP 地址的 SSL VirtualHosts(而不是使用 2 个 IP)。

由于您共享 IP,不支持 SNI 的浏览器只会访问第一个网站,而永远不会访问第二个网站。

相关内容