我需要使用来自单个IP的SSL托管几个Apache虚拟主机。
现在--我了解到,由于SSL封装了HTTP请求,所以在首先向客户端发送公钥之前,无法知道请求的是哪个主机。这实际上打破了SSL虚拟主机使用标准SSL证书的可能性。
我获得了统一通信证书(UCC),也称为主题可选名称(SAN)证书。这允许我为多个域提供相同的证书。
我希望这是Apache为任何SSL请求提供的证书,然后在加密建立之后,让Apache像往常一样解析虚拟主机。
为此,我应该如何配置Apache?我曾试图研究如何做到这一点,但我所能找到的只是引号,这些引语说这是可能的,但没有具体说明:
wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
虽然Apache可以在稍后看到请求中的主机名后重新协商SSL连接(并且确实如此),但在初始握手期间选择用于匹配请求主机名的正确服务器证书为时已晚,从而导致有关证书中存在错误主机名的浏览器警告/错误。
serverfault.com/questions/48334/apache-virtual-hosts-with-ssl
顺便说一句,有可能有多个SSL--在一个IP地址上被命名为虚拟主机--我在我的网站上这样做--但是它在Apache日志中产生各种各样的警告,在浏览器中产生证书警告。我当然不会推荐给一个需要看上去干净的生产网站。-David 7月31日4:58
www.digicert.com/subject-alternative-name.htm
虚拟主机一个IP地址上的多个SSL站点。在单个服务器上承载多个启用SSL的站点通常需要每个站点的唯一IP地址,但具有主题可选名称的证书可以解决此问题。Microsoft IIS 6和Apache都能够使用统一通信SSL (也称为SAN证书)的虚拟主机HTTPS站点。
请帮帮忙。
发布于 2010-02-15 20:03:36
我在apache 2.2.14实例上测试了这一点,它运行得很好:
使用NameVirtualHost指令(对ports.conf):
NameVirtualHost *:443定义您的vhost:
<VirtualHost *:443>
ServerName www.siteA.com
DocumentRoot "/opt/apache22/htdocs/siteA"
SSLCertificateFile "/path/to/my/cert"
SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>
<VirtualHost *:443>
ServerName www.siteB.com
DocumentRoot "/opt/apache22/htdocs/siteB"
SSLCertificateFile "/path/to/my/cert"
SSLCertificateKeyFile "/path/to/my/key"
</VirtualHost>我使用这个链接作为资源。
https://serverfault.com/questions/113076
复制相似问题