Apache VirtualHost:不同的IP(不同的NIC),相同的端口将不起作用

我希望apache能够为不同的networking提供不同的证书。

Listen 192.168.X.5:443 #WAN Listen 192.168.Y.5:443 #Network <VirtualHost 192.168.X.5:443> ServerName ssl.mydomain.us DocumentRoot "C:/Same/Html/htdocs/" SSLEngine on SSLCertificateKeyFile "C:/Apache/conf/sslP/PUBLIC.key" # I'll call this "WAN Cert" SSLCertificateFile "C:/Apache/conf/sslP/PUBLIC.crt" SSLCertificateChainFile "C:/Apache/conf/sslP/PUBLIC.ca" </VirtualHost> <VirtualHost 192.168.Y.5:443> ServerName ssl.mydomain.us #--- sorry, I can't, I don't want to change this DocumentRoot "C:/Same/Html/htdocs/" SSLEngine on SSLCertificateKeyFile "C:/Apache/conf/ssl/NETWORK.key" # I'll call this "Network cert" SSLCertificateFile "C:/Apache/conf/ssl/NETWORK.crt" </VirtualHost> 

当我通过其他互联网连接(连接X.5)时:WAN Cert使用[确定]当我从networking连接(连接Y.5)时:使用WAN Cert [为什么?]

问题是:为什么networking证书将不会使用,当我从networking连接? 我该如何解决这个问题? (当然,我连接到192.168.Y.5,而不是X.5)

你有没有在你的configurationNameVirtualHost *:443 ? 在这种情况下,apache将使用第一个ssl证书来build立连接。

在这里看到更多的细节

NETWORK.crt的CN是否与PUBLIC.crt的CN相同?

尝试从你想连接到192.168.Y.5的客户端运行(你可能必须安装openssl – 如果你只有win箱子,那么cygwin已经openssl – 我不确定你是否可以把它作为一个独立的应用程序/ LIB):

 nslookup ssl.mydomain.us openssl s_client -connect ssl.mydomain.us:443 

然后从您要连接到192.168.X.5的客户端运行相同的命令。 将结果粘贴到问题中。