将 https 重定向到另一个 https

Ste*_*ski 32 https

我一直在谷歌上搜索这个问题,具有讽刺意味的是我找不到具体的答案。这个问题我以前自己回答过,现在想不起来自己的解释了。

一年几次,有人会要求我这样做。我想向他们指出解释这一点的某种可敬的文章。

我想获取https://www.example.com/的 URL并将流量重定向到https://www.example2.com/

我相信这在技术上应该是可行的,但不受欢迎。这种方法有什么问题?由于我将浏览器重定向到另一个站点,浏览器是否会出现安全弹出窗口?任何人都可以提供一些可观的文档的链接来解释这一点吗?

vdb*_*oor 19

你可以这样做,两个站点都需要有一个有效的 SSL 证书。这样浏览器就不会弹出安全窗口。但是,如果两个站点存在于同一台服务器上,则两个域都需要从不同的 IP 地址托管。

Web 服务器查看 HTTP 请求中的“主机”标头以查看它需要服务的站点。SSL 协商发生在发送 HTTP 请求之前,因此此时 Web 服务器无法确定它将显示哪个网站。它将始终向浏览器发送相同的证书。

有两种方法可以解决这个问题:

  • 拥有 *.example.com 的通配符证书,因此所有子域都可以共享相同的证书。
  • 在不同的 IP 地址上运行每个 SSL 站点。这样,Web 服务器通过检查接收传入连接的 IP 地址,知道它可以向浏览器发送哪个 SSL 证书。

请注意,将多个 IP 地址附加到同一个网络适配器是完全可能的,只是您需要在 IP 地址空间中使用第二个 IP 地址。

更新:如今,您可以在一个 IP 上运行多个 SSL 站点。要启用此功能,请在您的 Web 服务器上配置 SNI 支持。大多数现代浏览器(Windows XP 和 Android 2 除外)都支持这一点。


Jam*_*s L 5

我从来没有尝试过这个,所以我没有从具体经验中说话,但它应该有效。您需要为https://www.example.com提供有效的 SSL 证书,因为主机名在 HTTP 标头内加密,因此您的服务器在解密之前不会知道重定向。之后,它应该像正常的 HTTP 请求一样重定向。