Apache-2.2
如何阻止未啟用 ssl 的虛擬主機的 HTTPS 請求轉到第一個啟用 ssl 的虛擬主機(Apache-SNI)
我希望這個標題是清楚的。
如何防止對未啟用 ssl 的虛擬主機的 HTTPS 請求轉到第一個啟用 ssl 的虛擬主機(設置為 Apache-SNI)。
例如,使用下面我的縮寫配置,
https://example.com
Apache 在啟用 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 上。