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

标签 javascript https service-worker

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

服务 worker 需要 HTTPS,从 HTTPS 源到非 HTTPS 源的调用存在安全风险,因此现代浏览器不允许。如果不使用本地代理(这会破坏目的),是否有某种方法可以解决此“限制”?

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

最佳答案

How can I allow Mixed contents (http with https) using content-security-policy meta tag? 可能重复.浏览器不允许这样做,因为它破坏了用户信任模型。

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

关于javascript - HTTPS Web 应用程序可以调用非 HTTPS 来源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61704035/

相关文章:

PHP 脚本从 POST 返回 responseText 到 AJAX?想要使用 Ajax POST 返回消息

javascript - 如何帮助调试器查看我的 javascript,或者如何最好地重构我的脚本以使其对调试器友好?

windows - Windows 上的 svn 客户端非常慢,Linux 上的 svn 客户端非常快

apache - 使用虚拟主机时如何在 XAMPP 中使用 https (SSL)

javascript - 奇怪的 Javascript/JQuery 条件语句行为

javascript - 如何在 PHP 中从 AJAX jQuery 请求获取数据

ssl - 签发自签名证书

javascript - 使用 Service Worker 进行缓存 - Chrome 和 Android Webview

cors - 在 Service Worker 中获取 CORS 请求

javascript - VueJS service-worker.js 在我的 PWA 中被忽略