我有多个 vhost(apache),这些都只是 http。最近我添加了一个 https vhost,发现在这些域中的任何一个上使用 https 都会重定向到 ssl 站点。
以及 SSL 站点:
因此问题是,如果有人访问 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
)
你有两个解决方案:
为所有虚拟域购买通配符证书(价格可能会上涨),以便访问任何网站时 HTTPS 和 HTTP 可以匹配。
将 SSL 托管域名移动到其自身的 IP(基本上撤消虚拟托管),以便其他域名不会获得 SSL 证书。
答案2
让您的常规网站接受连接*:80
,*:443
然后让你的 SSL 站点只hostname:443
接受hostname:80