1个IP上的多个SSL通配符

问题描述:

目前我的服务器有一个网站在https/ssl上运行。事情是当我启用第二个虚拟主机,也与https/ssl,我运行的第一个网站现在使用新网站的SSL证书。1个IP上的多个SSL通配符

我已经尝试把这两个网站放在一个单独的虚拟主机文件中,没有工作,所以我做了2个单独的文件。

这里是我的虚拟主机配置文件:

(命名他们websiteZ和网站ÿ因为alfabetical秩序的,他们都在)

虚拟主机的当前运行网站的.conf

<VirtualHost *:80> 
ServerAlias *.websiteZ.nl 
Redirect 301/https://websiteZ.nl 
</VirtualHost> 

NameVirtualHost *:443 

<IfModule mod_ssl.c> 
<VirtualHost *:443> 
    ServerName www.websiteZ.nl 
    DocumentRoot "/var/www/html/websites/websiteZ.nl/public" 
    <Directory "/var/www/html/websites/websiteZ.nl/public"> 
     Require all granted 
     Options Includes FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
    SSLEngine On 
    SSLCertificateFile /etc/apache2/ssl/websiteZ.nl/certificate.crt 
    SSLCertificateKeyFile /etc/apache2/ssl/websiteZ.nl/certificate.key 
    SSLCertificateChainFile /etc/apache2/ssl/websiteZ.nl/cabundle.crt 
</VirtualHost> 
</IfModule> 

使用ssl.conf的新网站

<VirtualHost *:80> 
    ServerName websiteY.nl 
    ServerAlias www.websiteY.nl 
    RewriteEngine On 
    RewriteCond %{SERVER_PORT} !443 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] 
    RewriteRule ^(/(.*))?$ https://%{HTTP_HOST}/$1 [R=301,L] 
    DocumentRoot "/var/www/html/websites/websiteY.nl/public/" 
    <Directory "/var/www/html/websites/websiteY.nl/public/"> 
     Require all granted 
     Options Includes FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

<IfModule mod_ssl.c> 
<VirtualHost *:443> 
    ServerName www.websiteY.nl 
    DocumentRoot "/var/www/html/websites/websiteY.nl/public" 
    <Directory "/var/www/html/websites/websiteY.nl/public"> 
     Require all granted 
     Options Includes FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
SSLStrictSNIVHostCheck on 
    SSLEngine On 
    SSLCertificateFile /etc/apache2/ssl/websiteY.nl/certificate.crt 
    SSLCertificateKeyFile /etc/apache2/ssl/websiteY.nl/certificate.key 
    SSLCertificateChainFile /etc/apache2/ssl/websiteY.nl/cabundle.crt 
</VirtualHost> 
</IfModule> 

ports.conf

NameVirtualHost *:80 
NameVirtualHost *:443 

Listen 80 

<IfModule mod_ssl.c> 
    Listen 443 
</IfModule> 

<IfModule ssl_module> 
     Listen 443 
</IfModule> 

<IfModule mod_gnutls.c> 
     Listen 443 
</IfModule> 

我抬头看了看SNI的事情,但我想我失去了一些东西。我理解它的方式是我必须使用NameVirtualHost来使其工作。

服务器上AWS ece2与Ubuntu 16.04.2

问题occors运行,当我在终端上键入:

a2ensite websiteY.conf 

当我这样做websiteZ将失去它的HTTPS证书,并会显示一个大红十字至极说:不安全!当你点击继续它链接到网站Y

我有点出的选择,有人可以帮我吗?谢谢!

+0

当您在终端'a2ensite websiteY.conf'中输入时会出现什么问题? –

+0

谢谢,我编辑帖子:“当我这样做的网站Z将失去它的HTTPS证书,并会显示一个大的红十字会说:不安全!当你点击继续它链接到网站Y” –

+0

什么**完全**当您尝试访问websiteZ时,您是否在浏览器的地址栏中输入? –

当你不https进入www.websiteZ.nl,请求将首先通过

<VirtualHost *:80> 
ServerAlias *.websiteZ.nl 
Redirect 301/https://websiteZ.nl 
</VirtualHost> 

抓到,因此重定向到https://websiteZ.nl

由于没有你:443虚拟主机既没有配置有websiteZ.nlServerNameServerAlias,那么将使用按字母顺序排列的第一个.conf文件,在这种情况下,该文件是带有websiteY证书的文件。

+0

你先生,是英雄。我不相信我错过了这个!有用。 –