Apache-2.2

如果通過 https 請求未啟用 SSL 的域,Apache 是否會在同一伺服器上提供不同的啟用 SSL 的域?

  • February 26, 2015

我在 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 文件中顯示的第一個。

預設情況下,您根本不會獲得重定向,但正如您的託管服務提供商所說:如果沒有為域名配置虛擬主機,則第一個 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>

引用自:https://serverfault.com/questions/671515