#home #proxy-server #ssl #ui #part #system #iot

bin+lib new-home-proxy

这是 New Home IoT 系统的一部分。它用于将核心部分在 www 上可用。

3 个版本

0.1.2 2020 年 7 月 26 日
0.1.1 2020 年 7 月 25 日
0.1.0 2020 年 7 月 24 日

#636身份验证

MIT 许可证

380KB
1K SLoC

Pipeline Status creates.io

新家:代理

为 New Home 系统提供基本代理。用于通过 SSL 加密将核心部分公开。使 New Home UI 能够以 SSL 加密和作为 PWA 部署。

为什么?

虽然您仍然可以运行自己的 UI,但我希望 UI 以 PWA 的形式可用。然而,为此我必须向其中添加 Service Worker,而这另一方面要求 UI 通过 HTTPS 提供服务(对我仍然可行)。但现在核心部分也必须通过 HTTPS 访问,并且这个证书必须是可信的。这就是我失败的地方。没有人会给你一个(可信)SSL 证书,尤其是对于一个网络内部 IP。因此,我必须将核心从您的家中取出并通过 SSL 提供访问。因此,这个代理服务器将由我托管(使用 SSL 加密),或者如果您有相关知识,可以自己托管。

如何?(技术部分)

代理由两部分组成

  • 客户端,它将在您的 Raspberry PI 上运行
  • 服务器,它将在我(或您)的服务器上运行

此外,我还将提供配置文件,以便您可以直接部署到 Heroku,并使此代理由您自己托管。至少您可以知道,我不会在我的服务器上复制数据。

连接是如何工作的

向公众开放您的家是一个敏感话题,因此它必须是安全的。我尽量通过加密您家、代理服务器和 UI(即您的本地设备)之间的所有流量来确保其安全性。为了确保其他人不会访问您的家资源,客户端代理需要登录。登录不是服务器的一部分,而是在客户端(您的 Raspberry PI)上。

为了避免在路由器上任何端口转发,客户端连接到服务器。通过这种方式,只有服务器需要在公共网络上可用,客户端只是坐在某个地方,甚至可以在防火墙后面。更好的是,通信是通过 WebSocket 连接进行的,因此您只需要一个端口和一个 SSL 设置来确保代理请求和客户端隧道的安全。

为了防止入侵者进入您的家庭,需要通过代理请求发送登录凭证。它们将被转发到客户端,然后客户端将验证它们。这样,您就不会被允许一切的服务器所欺骗。

所有这些都应该防止有人入侵您的家庭。如果还有人对此有疑虑,请告诉我,我将尝试解决这个问题。

依赖项

~38MB
~859K SLoC