我已经为端口 80 正确设置了基于名称的托管。
我的问题是,对于端口 443,如果我的虚拟主机上基于名称的站点没有启用端口 443,或者如果我a2dissite
为站点进行了配置,则该站点的 https 版本似乎会尝试打开服务器上另一个站点的 https 版本。
更多细节
我在可用的站点中设置了 site1.conf
<Virtualhost *:80>
ServerName www.site1.com
ServerAlias site1.com
DocumentRoot /var/www/html/site1
.....
</VirtualHost>
<Virtualhost *:443>
ServerName www.site1.com
ServerAlias site1.com
DocumentRoot /var/www/html/site1
.....
SSLEngine On
... all other certificate params
</VirtualHost>
对于 site2.conf
<Virtualhost *:80>
ServerName www.site2.com
ServerAlias site2.com
DocumentRoot /var/www/html/site2
.....
</VirtualHost>
<Virtualhost *:443>
ServerName www.site2.com
ServerAlias site2.com
DocumentRoot /var/www/html/site2
.....
SSLEngine On
... all other certificate params
</VirtualHost>
如果两个 SSL 都没问题,那么一切就可以正常工作。
我决定使用 a2dissite site2.conf。如果我打开 https ://www. site2.com,它会抛出一个错误,即 SSL 配置仅适用于 www.site1.com,这意味着 a2dissite site2.conf 未禁用 site2 的 https 部分,但 http :// www.site2.com 打开了默认根目录,这没问题。如何确保 https :// www.site2.com 也显示默认的 apache 根目录,而不是使用 site1.com SSL 并抛出错误?