ngrok2.0 与端对端加密
文章目录
ngrok 2.0
相比于 ngrok 1.0,ngrok 2.0 发生了很多变化: 参考这儿。
另一点值得关注的变化是,ngrok 2.0 不再开源了。
在 ngrok 2.0 的变化中,我比较关注安全性,ngrok 2.0 目前支持TLS Tunnels, 你可以使用自己的证书进行端到端加密,如果你对其中原理感兴趣,可以关注一下SNI, 实际上Home Assistant Cloud也是采用一样的策略。
使用 TLS 加密本地服务
下文展示如何使用 ngrok 2.0 对 Home Assistant 进行端对端加密(使用自己的 tls 证书),并将其暴露到公网。(ngrok 2.0 的端对端加密功能适用于任何本地服务,在此只是以 Home Assistant 为例)
ngrok 2.0 的 TLS 功能需要付费使用,所以你需要先升级到付费计划里,选择 PRO 计划,月结的话,每月 10 刀,相关权限为:
All basic features, plus:
- Whitelabel domains
- Reserved TCP addresses
- End-to-End TLS Tunnels
Per user limits:
- 5 reserved domains
- 2 reserved TCP addresses
- 2 online ngrok processes
- 12 tunnels/ngrok process
- 60 connections/minute
折算下来,和Home Assistant Cloud费用相近。
配置
配置工作比较简单,ngrok 2.0 的文档里写得比较清楚了。
分为以下几步:
- 在reserved里添加
Reserved domains
, 之后使用 cname 将你的域名指到 ngrok 这儿,reserved页面里有引导。 - 申请证书(可以使用 Let’s Encrypt 或者自己购置的证书)
- 运行 ngrok:
./ngrok tls -hostname e2ee.codelab.club -key ./codelab.club.key -crt ./fullchain.cer 8123
完成。
注意事项
使用 hass 启动 Home Assistant 的时候,不要运行为 https 模式(不要在 HA 配置文件里配置加密证书)。在启动 ngrok 时指定自定义证书。
参考
文章作者 种瓜
上次更新 2019-09-09