**已关闭。**此问题为not about programming or software development。目前不接受回答。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
15天前关闭
Improve this question的
目前我的服务器有1个网站运行在https/ssl上。事情是当我启用第二个vhost时,也是https/ssl,我运行的第一个网站现在使用新网站的ssl证书。
我试过把两个网站在一个单一的vhost文件,没有工作,所以我做了2个单独的文件,而不是。
以下是我的vhost配置文件:
(将网站Z和网站Y按字母顺序排列)
vhost当前运行的网站.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 ece 2上运行,Ubuntu 16.04.2
当我输入终端时出现问题:
a2ensite websiteY.conf
型
当我这样做websiteZ将失去它的https证书,并会显示一个大红叉说:不安全!当你点击继续它链接到websiteY
我有点不知所措,有人能帮我吗?谢谢!
1条答案
按热度按时间xfb7svmp1#
当您输入
www.websiteZ.nl
而不输入https
时,请求将首先被字符串
因此重定向到
https://websiteZ.nl
由于您的
:443
虚拟磁盘中没有任何一个配置了websiteZ.nl
的ServerName
或ServerAlias
,因此将使用第一个.conf文件中的虚拟磁盘,在本例中是具有websiteY cert的虚拟磁盘。