我希望标题清楚。
如何防止启用非ssl虚拟主机的HTTPS请求转到启用ssl的第一个虚拟主机(安装程序是Apache-SNI)。
例如,使用下面的缩写configuration, https://example.com ://example.com(非ssl虚拟主机)的请求由Apache在启用了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虚拟主机的mod_rewrite规则?
正如Apache文档所说 ,当没有ServerName匹配Web请求中的主机名时,将使用与给定IP /端口组合匹配的第一个VirtualHost 。
因此,您只需要提供一个默认的虚拟主机,它不会提供任何内容或您select的内容,而且它必须是Apache在加载其configuration时首先parsing的虚拟主机。
如果您不希望通过https访问特定的主机,请将它们放置在一个单独的IP地址上,在该IP地址上,您已将Apacheconfiguration为不Listen端口443。
我知道,这是一段时间…但SSLStrictSNIVHostCheck选项呢? 据我所知,这解决了你的问题。