【发布时间】:2017-05-05 11:19:56
【问题描述】:
目前我的服务器有 1 个网站在 https/ssl 上运行。问题是当我启用第二个虚拟主机时,也使用 https/ssl,我运行的第一个网站现在正在使用新网站的 ssl 证书。
我尝试将两个网站放在一个 vhost 文件中,但没有成功,因此我制作了 2 个单独的文件。
这是我的虚拟主机配置文件:
(将它们命名为 websiteZ 和 website 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 才能使其工作。
服务器在 Ubuntu 16.04.2 的 AWS ece2 上运行
在终端输入时出现问题:
a2ensite websiteY.conf
当我这样做时,该 websiteZ 将丢失它的 https 证书,并会显示一个大红十字,上面写着:不安全!当您单击继续时,它会链接到网站Y
我有点没有选择,有人可以帮我吗?谢谢!
【问题讨论】:
-
在终端输入
a2ensite websiteY.conf会出现什么问题? -
谢谢,我编辑了帖子:“当我这样做时,那个 websiteZ 将失去它的 https 证书,并且会显示一个大红十字,上面写着:不安全!当你点击继续它链接到 websiteY”
-
当您尝试访问 websiteZ 时,究竟在浏览器的地址栏中输入了什么?
-
www.websiteZ.nl