如果通过 https 请求未启用 SSL 的域,Apache 是否会在同一服务器上提供不同的启用 SSL 的域?

如果通过 https 请求未启用 SSL 的域,Apache 是否会在同一服务器上提供不同的启用 SSL 的域?

我在 Apache 服务器上托管了几个网站(例如http://www.example.com),其中只有一个具有 SSL 证书(例如https://www.example.net)。是否可以设置 Apache,以便尝试浏览到https://www.example.com不会导致 Apache 服务https://www.example.net? 如果是,怎么办?

我之所以问这个问题,是因为我的托管服务提供商声明:

...如果尝试与服务器上的任何 IP 建立 SSL 连接,并且该域没有可用的 SSL 虚拟主机,它将连接到列出的第一个可用的 SSL 虚拟主机。...如果机器上有多个 SSL 虚拟主机,当没有匹配时,它将自动连接到 httpd.conf 文件中显示的第一个虚拟主机。

答案1

默认情况下,您根本不会获得重定向,但正如您的托管服务提供商所述:如果没有为域名配置虚拟主机,则第一个 VirtualHost 是显示的默认虚拟主机。这是在您忽略 Web 浏览器生成的 SSL 警告之后...

如果您仅启用了 SSL/TLS,则www.example.net连接到时将显示该站点https://any-domainhttps://<ip-address of your server>

因此,在有效域名的 VirtualHost 节之前设置一个空白网站作为第一个 VirtualHost 是很常见的。

<VirtualHost *:443>
    ServerName localhost
    DocumentRoot /var/www/empty
</VirtualHost>
<VirtualHost *:443>
    ServerName www.example.net
    DocumentRoot /var/www/example.net
</VirtualHost>

相关内容