我遇到这样一种情况,我希望生产插入 LAN 并充当 Web 服务器的(物理硬件)小部件,为 LAN 上的 Web 客户端提供内容。
从小部件到客户端的流量应该是加密的,但问题是我无法控制 LAN 或客户端,这意味着无法设置本地 CA 或进行任何 DNS 调整。
是否可以安排某种方式使小部件可以向 Web 客户端提供加密数据。
如果创建某种机制允许这种情况发生(绑定到我拥有的某个域,例如 widgetN.thedomainiown.com),那么可能可以为每个设备创建和发布证书。假设 LAN 上的所有内容都可以看到广阔的互联网。
我考虑了以下几种策略:
- 按照上述方法为每个设备创建一个证书,并在安装该证书后发送小部件。我知道这行不通,因为它会导致证书主机名不一致。
- 让小部件和客户端通过我控制的可信互联网服务器进行通信。
第二种情况是,所有数据都可以通过安全链接进行传输,并由受信任的服务器进行中继。我认为这可以解决问题,但由于带宽和延迟原因,这是不切实际的。
相反,是否可以使用受信任的服务器在小部件和客户端之间设置加密链接?我曾考虑过为此使用 JavaScript 加密,但我读到的所有内容都告诉我,JavaScript 加密很糟糕,永远不应该使用。在这种情况下,我并不完全清楚问题是什么,所以我很乐意得到启发。
这种情况是,受信任的服务器构建一个 Web 应用程序,该应用程序封装了加密协议和必要的证书,然后可用于处理 LAN 上的加密。也就是说,受信任的服务器提供用于处理本地流量的网页(考虑到同源策略,这是否可行?)。