Apache-2.2
如果通過 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 文件中顯示的第一個。
預設情況下,您根本不會獲得重定向,但正如您的託管服務提供商所說:如果沒有為域名配置虛擬主機,則第一個 VirtualHost 是預設顯示的。那是在您忽略 Web 瀏覽器生成的 SSL 警告之後…
如果您只啟用了 SSL/TLS,
www.example.net
那麼連接https://any-domain
到https://<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>