VirtualHost 未使用正确的 SSL 证书文件

VirtualHost 未使用正确的 SSL 证书文件

我为虚拟主机和 SSL 做了一个复杂的设置。我发现了问题,我需要一个解决方案。问题是,我设置虚拟主机和服务器名称的方式是,LAST VirtualHost 指令将 SSL 证书文件与 ServerName 关联,而不管 IP 地址或 ServerAlias 是什么。

在这种情况下,www.site1.com 上的 SSL 使用在最后一个 VirtualHost www.site2.com 上建立的证书文件。

这是应该的工作方式吗?这似乎是因为它们都使用相同的 ServerName;但我认为这不会成为问题。我专门出于某种目的使用相同的 ServerName,我真的无法改变这一点。所以我需要一个好的解决办法。是的,我可以购买另一个 UCC SSL 并将它们都放在上面,但我已经这样做了;这些实际上已经是 UCC SSL。它们恰好是两个不同的 UCC SSL。

<VirtualHost 11.22.33.44:80>
 ServerName somename
 ServerAlias www.site1.com
 UseCanonicalName On
 RewriteEngine On
 RewriteOptions Inherit
</VirtualHost>
<VirtualHost 11.22.33.44:443>
 ServerName somename
 ServerAlias www.site1.com
 UseCanonicalName On
 SSLEngine on
 SSLCertificateFile /usr/local/apache/conf/ssl.crt/cert1.crt
 SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/cert1.key
 SSLCertificateChainFile /usr/local/apache/conf/chain/gd_bundle.crt
 RewriteEngine On
 RewriteOptions Inherit
</VirtualHost>

<VirtualHost 55.66.77.88:80>
 ServerName somename
 ServerAlias www.site2.com
 UseCanonicalName On
 RewriteEngine On
 RewriteOptions Inherit
</VirtualHost>
<VirtualHost 55.66.77.88:443>
 ServerName somename
 ServerAlias www.site2.com
 UseCanonicalName On
 SSLEngine on
 SSLCertificateFile /usr/local/apache/conf/ssl.crt/cert2.crt
 SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/cert2.key
 SSLCertificateChainFile /usr/local/apache/conf/chain/gd_bundle.crt
 RewriteEngine On
 RewriteOptions Inherit
</VirtualHost>

答案1

尝试在 VirtualHost 之外添加以下行:

名称虚拟主机 11.22.33.44:443 名称虚拟主机 55.66.77.88:443

答案2

要使用服务器名称指示,您需要 Apache 2.2.12 或更高版本。以前的版本不支持此 SSL 扩展。

(另一种选择是mod_gnutls- 但是它不如官方的稳定mod_ssl。)

相关内容