2014-09-24 161 views
8

我想在apache(apache 2.2.22和openssl 1.0.1,debian 7.6)上配置两个具有自己ssl证书的虚拟主机。我发现了许多关于SNI的文章,但仍然无法正确配置它。下面是我的配置:apache上的多个ssl虚拟主机

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

不可能这样做:https://wiki.apache.org/httpd/NameBasedSSLVHosts – arco444 2014-09-24 14:18:45

回答

11

经过一番搜索后发现有可能(https://www.digicert.com/ssl-support/apache-multiple-ssl-certificates-using-sni.htm)。我唯一的问题是域的两个单独的配置文件...当我配置虚拟主机的域在一个配置文件的工作。

+3

即使我的所有文件都在同一个文件中,我也遇到了同样的问题。原来我从文件中错过了这一行: 'NameVirtualHost *:443''' – 2016-12-27 01:54:00

+0

'NameVirtualHost'不再需要Apache 2.4。此外,第一个定义的虚拟主机是在服务器名称中使用的**默认**,只要客户端不存在于任何虚拟主机中。 – caiofior 2018-02-10 11:56:46