我在端口 80 和 443 上使用基于名称的虚拟主机。一些虚拟主机仅支持端口 80。我没有,也不会获取这些主机名的证书。
如何配置 apache 以拒绝端口 443 上到某个主机名的连接?
例如:
supportsboth.example.com
有证书,可以监听端口 80 和端口 443
httponly.example.org
没有证书,只能通过常规 HTTP 获得。
apache 配置supportsboth.example.com
仅在端口 443 上有一个虚拟主机设置条目。
尝试连接httponly.example.com
端口 443 会使 Apache 使用supportsboth.example.com
虚拟主机的证书和详细信息。
由于主机名不匹配,这会导致浏览器报告大量证书错误,并且如果用户决定继续,仍然会进入错误的网站。
我最希望的是重定向到 HTTP 站点,但我想这需要有有效的证书。我的第二个选择是直接拒绝连接。
Micheal 在下面给出了将 SSL 名称放在单独 IP 上的回答,但对我来说不适用,因为两个域都已配置为使用相同的 IP,而我无法更改它们。
答案1
对永远不应在 SSL 上应答的主机使用不同的 IP 地址,并确保 Apache 仅在端口 443 上侦听适当的 IP 地址。