我一直在谷歌search这个问题, 具有讽刺意味的是,我找不到具体的答案。 我过去自己回答了这个问题,现在我不记得自己的解释了。
一年几次,有人会问我这样做。 我想指出一些可敬的文章来解释这一点。
我想通过https://www.example.com/获取url,并将stream量redirect到https://www.example2.com/ 。
我相信这应该在技术上是可能的,但是是不希望的。 这种方法有什么问题? 浏览器是否会因为我将它们redirect到另一个站点而获得安全popup窗口? 任何人都可以提供一些可敬的文档的链接解释这一点?
您可以这样做,这两个网站都需要有一个有效的SSL证书。 这样浏览器不会给安全popup。 如果两个站点都存在于同一个服务器上,则两个域都需要从不同的IP地址托pipe。
Web服务器查看HTTP请求中的“主机”标题,以查看它需要提供哪个站点。 SSL协商发生在HTTP请求被发送之前,所以在这一点上,Web服务器不能分辨它将显示哪个网站。 它将始终将相同的证书发送到浏览器。
有两种方法可以解决这个问题:
请注意,将多个IP地址连接到同一个networking适配器是完全可能的,只需要在IP地址空间中提供第二个IP地址即可。
更新:现在,您可以在一个IP上运行多个SSL站点。 要启用此function,请在您的Web服务器上configurationSNI支持。 大多数现代浏览器(除了Windows XP和Android 2)都支持这一点。
我从来没有试过这个,所以我没有从具体的经验说话,但它应该工作。 您需要为https://www.example.com提供有效的SSL证书,因为主机名是在HTTP标头内进行encryption的,所以您的服务器在解密之前不会知道redirect。 之后,它应该像正常的HTTP请求那样redirect。
为什么这是不受欢迎的?
例如,大银行和小银行都在https上运行网站,给客户一个安全的感觉。 大银行买小银行。 在某些时候,IT人员会将https://www.littlebank.comredirect到https://www.bigbank.com 。 这是从httpsredirect到https的合法理由。
这应该工作得很好。
我认为在目前可能出现的反应中出现的一个断开,就是在这些情况下,真正的redirect(即:浏览器被重新命名为www.example2.com)将会很好,但如果你掩盖了这个这样浏览器仍然会在www.example.com上指向它,而实际上,它已经将它发送到www.example2.com, 这正是您可以看到安全警告的原因,因为您可能试图欺骗用户。
短版本是一个正常的redirect应该没事,地址掩码可能会让你做很多解释。
看到它,这个问题可以在传输层上解决。 假设您有指向192.168.0.1的example.com的DNS Alogging。 当你在浏览器中inputhttps://example.com时 ,你的PCbuild立了一个到IP 192.168.0.1的服务器的TCP连接,其中一些进程在443端口上侦听。如果同时服务器(它不是试图详细了解通过此TCP会话发送的数据(如开始SSL协商))build立一个到192.168.0.2的TCP连接(在另一个服务器上有一个指向它的example2.com,在第一台服务器上安装HA proxy linux utulity可以解决这个问题这样的configuration:
defaults log global mode tcp retries 2 option redispatch option tcplog option tcpka option clitcpka option srvtcpka timeout connect 5s timeout client 24h #timeout client->haproxy(frontend) timeout server 60m listen front443 192.168.0.1:443 server back443 192.168.0.2:443
但是,这将导致SSL证书错误,除非您的example2.comnetworking服务器将显示一个以CN = example2.com和SAN = example.com为例的SSL证书。
或者,您可以在用户perstective example.com和example2.comparsing为192.168.0.1时设置DNS slpit范围。