在沒有 Internet 連線的本機網路上的用戶端瀏覽器中使用 HTTPS

在沒有 Internet 連線的本機網路上的用戶端瀏覽器中使用 HTTPS

我正在開發一個在伺服器上運行的網路應用程式。會有客戶端(智慧型手機瀏覽器)透過不連接到網路的 WiFi 透過 HTTPS 連接到伺服器。它主要用於為期 1 天的活動。

問題:是否可以在沒有網路的情況下使用 HTTPS?

  • 我們無法將任何憑證新增至客戶端的信任庫。我們也不能以任何其他方式設定客戶端。客戶將是隨機參觀活動的人
  • 用戶端無法存取互聯網來驗證 CRL/OCSP。可能只是沒有網路連接

我有個主意使用本地 DNS:

  • 我擁有金鑰和受信任的 SSL 憑證 (LetsEncrypt)offline.mydomain.com
  • 離線WiFi網路中有一個DNS伺服器,將所有DNS位址指向我的應用程式伺服器
  • SSL 憑證信任鏈中的所有憑證和 CRLoffline.mydomain.com都會下載到應用程式伺服器,並且可以在憑證的 CDP 和 AIA 中定義的路徑上存取它們
  • 應用程式伺服器聲稱正在運行https://offline.mydomain.com(並且DNS伺服器指向offline.mydomain.com應用程式伺服器)

整個流程是:

  • 客戶: GET https://offline.mydomain.com/app
  • 域名系統: offline.mydomain.com位於應用程式伺服器的IP上
  • 我的應用程式伺服器:這是 HTML
  • 客戶: GET http://crl.ca.com/crls/ca.crl
  • 域名系統: crl.ca.com位於應用程式伺服器的IP上
  • 我的應用程式伺服器:這是 CRL
  • 客戶: GET http://certificate.ca.com/certs/ca.cer
  • 域名系統: certificate.ca.com位於應用程式伺服器的IP上
  • 我的應用程式伺服器:這是證書

但是,我不太了解網路。 DNS部分可以嗎?

  • 我可以讓客戶端使用我的本機 DNS 而無需手動設定嗎?
  • 連結回真實網路後,客戶會有多少困惑?
  • 智慧型手機會連接到未連接網路的 WiFi 嗎?

答案1

我認為客戶端不會因為無法到達 CRL 或 OCSP 伺服器而無法連接到 TLS 主機。所以我 99% 確定您需要的是:

  • 由廣泛信任的 CA(例如 Let's Encrypt)簽署的伺服器憑證以及匹配的私鑰,安裝在本機 Web 伺服器上。
  • 將相關主機名稱指向本機伺服器 IP 位址的本機 DNS 伺服器。
  • DHCP 伺服器提供 IP 位址,並告訴它們使用您的 DNS 伺服器。

DNS 和 DHCP 是非常輕量級的操作,因此如果您願意,它們可以輕鬆地與 HTTPS 伺服器在同一台機器上運行。

行動 Wi-Fi 設備很可能啟用 DHCP,並且很可能能夠使用 DHCP 伺服器告訴它們使用的任何 DNS 伺服器。因此,我認為您無需擔心將“8.8.8.8”/“8.8.4.4”/“1.1.1.1”指向本機 DNS 伺服器。但我強烈建議您在活動開始之前就建立離線網路原型,並使用各種 iOS、Android、Mac 和 Windows 裝置(至少各一台)進行測試。

連接回真實網路時,裝置根本不應該混淆。

相關內容