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

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

我希望 apache 为不同的网络提供不同的证书。

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 证书 [确定] 当我从网络连接时(连接 Y.5):使用 WAN 证书 [为什么?]

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

答案1

您的配置中是否有这个NameVirtualHost *:443?在这种情况下,apache 将使用第一个 ssl 证书来建立连接。

这里更多细节

答案2

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 的客户端运行相同的命令。将结果粘贴到问题中。

相关内容