javascript - 在安全 (https) 互联网网站内通过 http 与 LAN 设备进行通信

标签 javascript security https

我在本地网络中有一个设备,它通过 http 使用 API 提供数据。 以及托管在安全(ssl、https)互联网 Web 服务器上的 Web 应用程序。

由于 Web 应用程序是通过 https 访问的,因此无法通过 http 直接对设备执行 ajax 调用。

考虑了两种解决方法,但有兴趣看看我是否遗漏了一些东西:

选项 1 - 闪光 - 编写 flash 组件,通过 http 与设备进行通信。因为 Flash 不受浏览器限制,仅用于安全通信。 此选项的缺点是使用该网站的任何人都必须安装闪存。

选项 2 - 新窗口 - 使用“window.open”命令打开一个新窗口,并通过参数( similar to this SO )向其传递 html+脚本。 此窗口被认为是不安全的,可以通过 http 与设备进行通信。 此选项的缺点是用户会丢失应用程序的上下文,并且新窗口可能会被弹出窗口阻止程序阻止。

我还缺少其他选项吗? (遗憾的是,无法在设备上打开 https 服务器)

最佳答案

由于混合内容在许多浏览器中是不可能的,因此此类请求被阻止。您必须选择:

  • 通过 HTTP 为您的网站提供服务
  • 在本地站点上使用 HTTPS。如果此站点是您的应用程序的一部分,则应用程序会创建自签名证书,通过互联网向您自己的证书颁发机构 (CA) 发送签名请求(Google 的 SCEP)。使用您的 CA 签署证书,将签名的证书发送回应用程序。为了避免浏览器的安全警告,您的应用程序会将 CA 的证书作为受信任的根安装在本地计算机上。然后,当订阅者访问您的网站时,可以从同一页面(在互联网站点上)访问他的本地主机数据,而不会在浏览器中出现任何关于错误SSL证书的安全警告。

关于javascript - 在安全 (https) 互联网网站内通过 http 与 LAN 设备进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30865701/

相关文章:

javascript - React 备忘录功能给出 :- Uncaught Error: Element type is invalid: expected a string but got: object

javascript - 如何防止页面在表单提交时重新加载,并显示一条小文字 "successfully registered"

javascript - 将元素从一个列表复制到另一个

security - Windows 备份读/备份写和 ACL

ssl - 最近无法通过 HTTPS 连接到我的 NAS

javascript - 模态窗口内的 ng-grid 仅在模态第一次打开时起作用

security - 散列密码和加密密码之间的区别

android - 如何安全地存储 Android KeyStore 密码

html - 图像未在 https 协议(protocol)中加载

ssl - 在 cloudflare 中禁用 SSL 并在服务器端使用(Ubuntu 和 Nginx)