Apache-2.2

如何阻止未啟用 ssl 的虛擬主機的 HTTPS 請求轉到第一個啟用 ssl 的虛擬主機(Apache-SNI)

  • January 12, 2017

我希望這個標題是清楚的。

如何防止對未啟用 ssl 的虛擬主機的 HTTPS 請求轉到第一個啟用 ssl 的虛擬主機(設置為 Apache-SNI)。

例如,使用下面我的縮寫配置,https://example.comApache 在啟用 ssl 的 vhost 上為(非 ssl vhost)的請求提供服務https://example.org。我想禁用該行為並可能使用適當的 HTTP 響應程式碼進行回复(不確定那是什麼)。

這甚至可能是不可能的,但我想我會問。

# I actually have a SNI setup, but it's not demonstrated here.
# I don't think it's relevant in this situation.

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
   ServerName example.org
</VirtualHost>

<VirtualHost *:443>
   ServerName example.org
</VirtualHost>

<VirtualHost *:80>
   ServerName example.com
</VirtualHost>

**編輯:**也許是第一個 ssl-vhost 中的 mod_rewrite 規則?

正如 Apache 文件所說ServerName,當web 請求中沒有匹配主機名時,將使用第一個VirtualHost匹配給定 IP/埠組合的主機名。

因此,您只需要提供一個不提供任何內容或您選擇的內容的預設虛擬主機,並且它必須是 Apache 在載入其配置時解析的第一個虛擬主機。

如果您根本不希望通過 https 訪問特定主機,請將它們放在單獨的 IP 地址上,您已將 Apache 配置為不在Listen埠 443 上。

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