2017-05-05 75 views
0

目前我的服務器有一個網站在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時,您是否在瀏覽器的地址欄中輸入? –

回答

0

當你不https進入www.websiteZ.nl,請求將首先通過

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

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

由於沒有你:443虛擬主機既沒有配置有websiteZ.nlServerNameServerAlias,那麼將使用按字母順序排列的第一個.conf文件,在這種情況下,該文件是帶有websiteY證書的文件。

+0

你先生,是英雄。我不相信我錯過了這個!有用。 –