【发布时间】:2016-11-25 17:00:32
【问题描述】:
我有两个虚拟主机,每个主机都有自己的证书。访问一个虚拟主机时,它会提供错误的证书。来自其他主机的证书在证书定义文件中具有不同的备用名称。
【问题讨论】:
我有两个虚拟主机,每个主机都有自己的证书。访问一个虚拟主机时,它会提供错误的证书。来自其他主机的证书在证书定义文件中具有不同的备用名称。
【问题讨论】:
我不确定您是如何配置虚拟主机的。你需要:
这仅适用于 apache
通常在apache主配置文件中完成
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.domain1.com
# SSl configuration for domain1
....
</VirtualHost>
<VirtualHost *:443>
ServerName www.domain2.com
# SSl configuration for domain2
....
</VirtualHost>
请记住,如果您对 2 个虚拟主机使用相同的 IP,则 Apache 将使用 SNI https://en.wikipedia.org/wiki/Server_Name_Indication 并传递它将在 TLS 协商期间连接的主机。
这意味着您将无法使用简单的方式对其进行测试
openssl -connect www.domain2.com:443
#you will get domain1 certificate
你需要使用
openssl -connect www.domain2.com:443 --servername www.domain2.com
#you will get domain1 certificate
【讨论】: