任何 vhosts 上的 https 都会通过 ssl 重定向到 vhost

任何 vhosts 上的 https 都会通过 ssl 重定向到 vhost

我有多个 vhost(apache),这些都只是 http。最近我添加了一个 https vhost,发现在这些域中的任何一个上使用 https 都会重定向到 ssl 站点。

例如: http://example1.com

以及 SSL 站点:

https://example4.com

因此问题是,如果有人访问 https//example.com,它会重定向到 https//example4.com

我尝试在虚拟主机中进行一些重定向,但似乎不起作用。如能得到任何帮助,我将不胜感激。谢谢。

答案1

使用HTTP协议,您可以拥有虚拟主机,即将多个名称映射到同一个 IP 地址。但是,HTTPS协议本身会将单个名称映射到单个 IP 地址(反之亦然:单个 IP 返回单个域)。基本上,虚拟主机在 上是不可能实现的HTTPS。HTTPS 中最近有一项工作(服务器名称指示或者统一通信证书目前,市场上有许多开源 SSL 证书 (SSL 证书),但它还不够完善 —— 它不适用于较旧的客户端,并且某些移动客户端也无法使用。

问题在于 HTTPS 本质上仍然是单个 IP/名称对。虚拟主机允许多个名称解析为同一个 IP ( example.com-> sharedIP),但由于 https 仅支持单个名称,因此结果被撤消 ( sharedIP-> example4.com)

你有两个解决方案:

  1. 为所有虚拟域购买通配符证书(价格可能会上涨),以便访问任何网站时 HTTPS 和 HTTP 可以匹配。

  2. 将 SSL 托管域名移动到其自身的 IP(基本上撤消虚拟托管),以便其他域名不会获得 SSL 证书。

答案2

让您的常规网站接受连接*:80*:443

然后让你的 SSL 站点只hostname:443接受hostname:80

相关内容