2016-03-30 186 views
1

我有一个连接到用户的WiFi网络并通过简单的REST接口响应命令的小工具[*]。用户使用Web应用程序来控制此小工具。目前,网络应用已通过http服务,并且应用的JavaScript会AJAX调用小工具的本地IP地址来控制它。这个方案效果很好,我没有问题。本地IP地址的HTTPS

[*]通过“小配件”我的意思是用户购买和他们的家中安装并配置连接到他们的家庭Wi-Fi网络

现在,我希望有一个实际的,有形物联网设备通过https服务这个网络应用程序。我没有问题在主机端设置https。问题是,现在浏览器阻止访问小工具(因为小工具的REST API超过http而不是https)。

明显的解决方案是通过https让小工具为其提供REST API。但是如何?它有一个本地IP地址,没有人会为它颁发证书。 (即使他们这样做了,我也必须为每个可能的本地IP地址购买一大堆证书)。我可以通过云进行往返(通过在服务器端添加更多逻辑来接受来自Web应用程序的命令并转发它通过另一个连接到小工具),但这会增加延迟。

有没有办法解决这个问题?我心里有一种可能性是:

  1. 获取通配符证书(比如,*.mydomain.com
  2. 跑我自己的DNS映射子域到本地IP地址下面的模式(例如,192-168-1-123.mydomain.com将映射到192.168.1.123
  3. 使用通配符证书中的所有小工具
  4. 我的web应用程序,然后可以使AJAX调用https://192-168-1-123.mydomain.com而不是http://192.168.1.123和延迟会预留不受影响从最初的DNS查找

会这样吗?这是一个昂贵的尝试(通配证书成本约200美元),运行DNS服务器看起来像是一个lot的工作。另外我发现自己没有资格考虑安全影响。

也许已经有解决这个问题的服务了吗?

+0

为什么不尝试将您的小工具放在静态IP地址上?然后,您只需要一个证书 – koelkastfilosoof

+0

@koelkastfilosoof大多数CA不颁发裸露IP地址的证书。即使他们,我是否必须依靠我的用户来进行配置(静态IP必须在WiFi路由器上配置以避免冲突),这是容易出错的。另外,每个家庭不可能有多个小工具。 –

+0

http://security.stackexchange。com/questions/116832 /安全 - 点对点通信 – lxkarthi

回答

1

如果您只想通过Web浏览器访问设备API,简单的解决方案就是通过您的Web服务器将所有请求代理到设备。这些设备甚至是自签名证书都不会成为问题。唯一的问题是,服务器必须与您的设备在同一个网络上。

如果您不在同一个网络上,您可以编写一个简单的浏览器插件(chrome)将api请求发送给IoT设备。但随后对应用/插件的依赖将变得笨拙。