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

Arl*_*kin 9 httpd ssl-certificate sni

为什么 apache 在我的日志中给我这个错误信息?是假阳性吗?

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

我最近从 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>
Run Code Online (Sandbox Code Playgroud)

bah*_*mat 7

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