HTTPS Web 应用程序可以调用非 HTTPS 来源吗?

Can an HTTPS web application make calls to a non-HTTPS origin?

我有一个小型 Web 应用程序需要调用本地网络上的设备。它使用获取设备的本地 IP 地址(例如 http://192.168.1.25:8060)来执行此操作。该设备不通过 HTTPS 提供其流量,也不能。 Web 应用程序 public 面向,我想添加一个 service worker 以提供离线支持。

服务工作者需要 HTTPS,从 HTTPS 源到非 HTTPS 源的调用存在安全风险,因此现代浏览器不允许。如果不使用本地代理(这会破坏目的),有什么办法可以解决这个问题 "limitation"?

https://example.com”如何调用http://192.168.1.25:8060?

可能与 重复。浏览器不允许这样做,因为它破坏了用户信任模型。

本地 HTTPS 代理是理想的选择。使用较低的 TTL(如果您的内部 IP 经常更改)配置 public DNS 条目,例如 internal.example.com 以指向您的内部 IP。为该子域创建受信任的 SSL 证书,然后 运行 使用该 SSL 证书的本地 HTTPS 代理。如果您的内部服务器在防火墙后面,首先将 internal.example.com 指向 public 网络服务器,在该 public 服务器上创建证书,然后复制证书并将 DNS 更改为您的本地服务器.或者使用通配符证书 *.example.com 来完全避免 "temporary public" 麻烦。