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 代理是理想的选择。使用较低的 TTL(如果您的内部 IP 经常更改)配置 public DNS 条目,例如 internal.example.com
以指向您的内部 IP。为该子域创建受信任的 SSL 证书,然后 运行 使用该 SSL 证书的本地 HTTPS 代理。如果您的内部服务器在防火墙后面,首先将 internal.example.com
指向 public 网络服务器,在该 public 服务器上创建证书,然后复制证书并将 DNS 更改为您的本地服务器.或者使用通配符证书 *.example.com
来完全避免 "temporary public" 麻烦。
我有一个小型 Web 应用程序需要调用本地网络上的设备。它使用获取设备的本地 IP 地址(例如 http://192.168.1.25:8060)来执行此操作。该设备不通过 HTTPS 提供其流量,也不能。 Web 应用程序 public 面向,我想添加一个 service worker 以提供离线支持。
服务工作者需要 HTTPS,从 HTTPS 源到非 HTTPS 源的调用存在安全风险,因此现代浏览器不允许。如果不使用本地代理(这会破坏目的),有什么办法可以解决这个问题 "limitation"?
可能与
本地 HTTPS 代理是理想的选择。使用较低的 TTL(如果您的内部 IP 经常更改)配置 public DNS 条目,例如 internal.example.com
以指向您的内部 IP。为该子域创建受信任的 SSL 证书,然后 运行 使用该 SSL 证书的本地 HTTPS 代理。如果您的内部服务器在防火墙后面,首先将 internal.example.com
指向 public 网络服务器,在该 public 服务器上创建证书,然后复制证书并将 DNS 更改为您的本地服务器.或者使用通配符证书 *.example.com
来完全避免 "temporary public" 麻烦。