2016-03-30 222 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設備。但隨後對應用/插件的依賴將變得笨拙。