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