我想在apache上配置两个带有自己ssl证书的虚拟主机(apache 2.2.22和openssl 1.0.1,debian 7.6)。我发现了许多关于SNI的文章,但仍然无法正确配置它。这是我的配置:
ports.conf
NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
TEST1-SSL
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName test1.com
DocumentRoot /var/www/test1
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/test1.crt
SSLCertificateKeyFile /etc/apache2/ssl/test1.key
</VirtualHost>
</IfModule>
TEST2-SSL
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName test2.test.pl
DocumentRoot /var/www/test2
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/test2.crt
SSLCertificateKeyFile /etc/apache2/ssl/test2.key
</VirtualHost>
</IfModule>
域https://test1.com正常运行(使用自己的证书)。 域https://test2.test.pl显示域test1.com的内容,并使用test1 ssl证书而不是test2.crt(因为它在配置文件test2-ssl中定义)。 任何想法,sugestions非常感谢。
亲切的问候, 并提前感谢!
答案 0 :(得分:15)
经过多一点搜索后发现它是可能的(https://www.digicert.com/ssl-support/apache-multiple-ssl-certificates-using-sni.htm)。我唯一的问题是域的两个单独的配置文件......当我在一个配置文件中为域配置虚拟主机时它起作用。
答案 1 :(得分:1)
在我的用例中,我有2个证书,一个通配符,一个没有。 我将两个配置都放到一个文件中:
<VirtualHost *.wildcard.com:443>
....
<VirtualHost normal.com:443>
...
但是没有用。解决方案是这样的:
<VirtualHost *:443>
....
<VirtualHost *:443>
...
对于两个域,只要在每个虚拟主机定义上添加所需的ServerName和ServerAlias:
ServerName normal.com
ServerAlias www.normal.com
ServerAlias m.normal.com
etc