我在 HTTPS 站点中有一个 iFrame。此 iframe 必须指向 HTTP 中的 IP(不具体,有数百个不同的 IP)。目前,它不起作用:“此请求已被阻止;内容必须通过 HTTPS 提供”我想一种解决方案是使用反向代理,但我找不到如何操作。
基本配置如下:
带有 iframe 到 HTTP 的 HTTPS 网络服务器(192.168.1.2)-> 捕获所有 HTTPS 的反向代理>HTTP(192.168.1.3)-> 设备(IP 如 192.168.0.x)
由于代理并不拥有每个设备 IP,代理如何接收对设备 IP 的请求?如何在同一 IP 上将 HTTPS 重定向到 HTTP?
谢谢!
答案1
iframe
现代浏览器不允许导航或重定向到嵌入在 HTTPS 页面中的 HTTP URL ,因为这被视为混合内容。例如,Chrome 可能会阻止该内容并显示以下消息:
混合内容:位于 '你的网页“已通过 HTTPS 加载,但请求了不安全的资源”iframe http 源'。此请求已被阻止;内容必须通过 HTTPS 提供。
您将需要通过某些在线服务器重定向请求,使用 HTTPS 来iframe
调用您的服务器,该服务器将执行最终的 HTTP 调用并返回结果。
如果可能的话,将 HTTP 站点转换为 HTTPS 将是最好的解决方案。
更多信息请参阅文章 什么是“混合内容”?为什么 Chrome 会阻止它?
某些浏览器有允许“不安全内容”的设置,因此这种混合页面仍可工作,但这种情况正在迅速改变。您需要研究您的浏览器版本以了解是否存在这样的选项。
Google 发布该页面 简单的混合内容示例! 它尝试通过 HTTP 下载可用于测试的 JavaScript 脚本。