Har*_*a R 7 dns rest ssl web-applications
我有一个小工具[*],它连接到用户的 WiFi 网络并通过简单的 REST 接口响应命令。用户使用 Web 应用程序来控制此小工具。Web 应用程序当前提供服务http,应用程序的 javascript 对小工具的本地 IP 地址执行 AJAX 调用以控制它。这个方案运行良好,我没有问题。
[*] 我所说的“小工具”是指用户购买并安装在家中的实际物理物联网设备,并配置为连接到他们的家庭 WiFi 网络
现在,我想通过https. 我https在主机端设置没有问题。问题是,现在浏览器阻止了对小工具的访问(因为小工具的 REST API 已经结束http而不是https)。
显而易见的解决方案是让小工具通过https. 但是如何?它有一个本地 IP 地址,没有人会为其颁发证书。(即使他们这样做了,我也必须为每个可能的本地 IP 地址购买大量证书。)我可以通过云往返(通过在我的服务器端添加额外的逻辑来接受来自 Web 应用程序的命令并转发它通过另一个连接连接到小工具),但这会增加延迟。
有没有办法解决这个问题?我想到的一种可能性是:
*.mydomain.com)192-168-1-123.mydomain.com将映射到192.168.1.123)https://192-168-1-123.mydomain.com而http://192.168.1.123除了初始 DNS 查找之外,延迟将保持不受影响这行得通吗?这是一项昂贵的试验(通配符证书的成本约为 200 美元)并且运行 DNS 服务器似乎需要大量工作。另外,我发现自己没有资格考虑安全隐患。
也许已经有一项服务可以解决这个问题?
虽然这是一个相当老的问题,但今天仍然找不到现成的解决方案。
正如 @Jaffa-the-cake 在评论中发布的那样,您可以了解 Plex 是如何做到的,Filippo Valsorda 在他的博客中对此进行了解释:https: //blog.filippo.io/how-plex-is-doing-https-对于所有用户/
这与您自己提出的非常相似。您甚至不需要通配符证书,但您可以使用 Let's Encrypt 即时生成证书。(如果需要,您仍然可以使用通配符证书,Let's Encrypt 现在也支持该证书。)
就在昨天,我对该工作流程进行了手动概念验证,可以通过以下步骤实现自动化:
现在,您将使用本地 IP 和公共解析的 DNS 条目与本地服务器建立 HTTPS 连接。
缺点是这不能从任意客户端离线工作。您需要考虑一个良好的安全概念,在请求 DNS 和证书的客户端与生成这些证书的 Web 服务之间建立信任。
顺便说一句,您介意分享一下您正在构建的是什么样的小工具吗?
小智 1
如果您只想通过 Web 浏览器访问设备 API,一个简单的解决方案是通过 Web 服务器代理对设备的所有请求。这甚至是设备的自签名证书也不会成为问题。唯一的问题是服务器必须与您的设备位于同一网络上。
如果不在同一网络上,您可以编写一个简单的浏览器插件(chrome)来将api请求发送到IoT设备。但这样对应用程序/插件的依赖就会很笨拙。
| 归档时间: |
|
| 查看次数: |
6241 次 |
| 最近记录: |