我在Apache 2中有大约10个站点。这些都是独立的站点 – 不是子站点。 我有两个SSL证书,我想为他们build立SSL,而不是强迫我的非ssl站点使用任何证书。
我遇到的问题是我不能同时拥有两个证书,它总是默认为第一个,而不pipe我去哪个站点。
我一直在读这个,看起来像我的服务器可能支持SSI,Windows XP不支持它,所以这将不是一个可行的select。 另外,我简单地看了一下mod_gnutils,但是我不能保证这样做会达到我想要的效果,而且如果我不是绝对必须的话,我也不会很自在地做出所有必要的安装/configuration。
任何方向提供给我这个将不胜感激!
这里是两个443个虚拟主机。 我已经尝试引用虚拟主机,如下所示,以及其他变体,如简单的“和”。 我也玩过NameVirtualHost引用,但仍然无济于事。
Listen 443 NameVirtualHost www.site1.com:443 NameVirtualHost www.site2.com:443 <VirtualHost www.site1.com:443> DocumentRoot /var/www/site1/ ServerName www.site1.com:443 #SSL SSLEngine on SSLCertificateFile /path/to/ssl/site1.com.crt SSLCertificateKeyFile /path/to/ssl/site1.key SSLCertificateChainFile /path/to/ssl/bundle1.crt </VirtualHost> <VirtualHost www.site2.com:443> DocumentRoot /var/www/site2/ ServerName www.site2.com:443 #SSL SSLEngine on SSLCertificateFile /path/to/ssl/site2.com.crt SSLCertificateKeyFile /path/to/ssl/sit2.key SSLCertificateChainFile /path/to/ssl/bundle2.crt </VirtualHost>
简而言之,您需要获得更多的IP地址,或者获取证书中有多个名称(SAN或通配符)的证书。
如果你有一个你想要在互联网上投放的网站,SNI真的不可行。 目前还没有足够的浏览器支持它。
在不使用SNI的情况下,您不能拥有与单个IP地址/端口组合关联的多个SSL证书。
唯一的解决办法是使用
正常的HTTP请求如下所示:
另一方面,HTTPS(即HTTP over SSL)请求的启动方式如下:
为什么你不能拥有与10.0.0.1:443相关的不同证书是因为Apache无法知道给哪个传入连接使用哪个证书。