基于名称的虚拟主机导致NET :: ERR_CERT_COMMON_NAME_INVALID

我有以下格式的web服务器configuration文件中的VirtualHost指令:

<VirtualHost *:443> ServerName example.com 

inputhttps://example.com到浏览器正确呈现网站,stream量被TLSencryption。 只要我重写它

 <VirtualHost example.com:443> 

向端口443上的域发出GET请求会导致SSL错误,即Chrome中的NET::ERR_CERT_COMMON_NAME_INVALID ,表示Web服务器提供了对example.net有效的证书(该其他域仍在我的服务器上)。

如果我查看证书( openssl x509 -in cert.pem -text ),我得到它是为

 Subject: CN=example.com 

证书的path已正确configuration。

附加信息:两个域在主机文件中parsing为相同的127.0.0.1,没有设置NameVirtualHost,并且在Web服务器前有一个代理,希望这个代理与这个问题无关。

对VirtualHost指令的参数必须与定义的NameVirtualHost指令相匹配。

如果在configuration中没有定义NameVirtualHost domain.com(这是不常用的),则不能在VirtualHost指令中使用domain.com,否则IP通常用于NameVirtualHost。

由于这个VirtualHost是无效的,它会加载第一个或默认的VirtualHost,它存在于该端口443的IP上,这是另一个域名,你的SSL被服务。