apache上有多个ssl虚拟主机

时间:2014-09-24 13:52:06

标签: apache ssl

我想在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非常感谢。

亲切的问候, 并提前感谢!

2 个答案:

答案 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