2015-06-16 36 views
1

我在本地網絡中有一個使用API​​通過http提供數據的設備。 和託管在安全(ssl,https)互聯網web服務器上的web應用程序。通過安全(https)互聯網網站內的http通信到局域網設備

由於Web應用程序是通過https訪問的,因此無法通過http直接向設備執行ajax調用。

想過兩種解決方法,但有興趣的看看,如果我失去了一些東西:

選項1 - 閃光 - 寫入閃存組件,將做與設備通過HTTP進行通信。因爲閃光燈不受瀏覽器限制,僅用於保護通信。 這個選項的缺點是任何使用該網站的人都必須安裝Flash。

選項2 - 新窗口 - 使用'window.open'命令打開一個新窗口,並通過參數(similar to this SO)將html +腳本傳遞給它。 此窗口被認爲不安全,可以通過http與設備進行通信。 此選項的缺點是用戶失去了應用程序的上下文,並且新窗口可能被彈出窗口攔截器阻止。

我還有其他選擇嗎? (不幸的是,在設備上打開https服務器是不可能的)

+0

爲什麼你不能在該設備上啓用HTTPS? –

回答

0

由於混合內容在許多瀏覽器中是不可能的,所以這些請求被阻止。你必須選擇:

  • 服務您的互聯網網站通過HTTP
  • 在本地站點使用HTTPS。如果此站點是您的應用程序的一部分,則應用程序將創建自簽名證書,並通過互聯網向您自己的證書頒發機構(CA)發送簽名請求(谷歌的SCEP)。用您的CA簽署證書,將簽名證書發送迴應用程序。爲避免瀏覽器的安全警告,您的應用程序會將您的CA證書安裝爲本地計算機上的受信任根。然後,當訪問您的網站的用戶可以在瀏覽器中訪問他的本地主機數據來自同一頁面(在互聯網上)沒有任何安全警告關於不良SSL證書