本文解答以下幾個常見問題:

  • 如何在 httpdispatch 中使用 HTTPS?
  • 使用 httpdispatch 時,如何取得安全上下文(Secure Context)?
  • 不透過 Web 伺服器,如何將 GWA 應用程式部署到裝置上?

問題背景:httpdispatch 的預設 HTTP 連線

開發人員使用 httpdispatch 進行測試時,預設的 URL 格式為 http://localhost:6394/demos.html,可連線到如 http://localhost:6394/ua/r/demo 之類的應用程式。

若改以本機 IP 位址替換 localhost,從另一台裝置進行測試,便會觸發「降級模式(degraded mode)」,原因是該連線缺乏安全上下文(Secure Context)的保護。這會導致設定圖示出現紅色警示徽章,並顯示功能受限的警告訊息。

解決方案:為 httpdispatch 加上 HTTPS 支援

GAS 說明文件指出,啟用 HTTPS 支援需要在啟動時加入兩個額外參數:

httpdispatch --cert-file myCert.crt --cert-key myCert-key.key

加上這兩個參數後,URL 格式便會轉換為 https://localhost:6394/demos.html

憑證產生方式

BDL 說明文件提供了建立憑證的詳細步驟,包含標準憑證以及根憑證授權機構(Root CA)兩種流程的分別說明。

實作步驟如下:先執行憑證建立流程的第 1 至 2 步,接著完整執行根憑證授權機構流程的全部四個步驟,最後再回到憑證建立流程的第 3 步,完成自簽憑證的建立。

使用文件範例中相同的檔案名稱,最終執行指令如下:

httpdispatch --cert-file MyCert.crt --cert-key MyCert.pem

作者為此建立了一個名為「httpsdispatch」的腳本,以自動化整個流程。

應用情境:Genero Web Apps(GWA)

GWA 中的 Service Worker 需要在 HTTPS 或 localhost 環境下才能運作。作者透過以下網址,將 GWA 應用程式部署到行動裝置上:

https://[ip-address]:6394/gwa/[app-name]/index.html

部署完成後,作者進一步驗證了離線功能可正常運作。

這個方式提供了一個便利的測試途徑——不需要架設完整的 Web 伺服器,即可在真實裝置上測試 GWA 的完整功能,包括離線模式。

原文:https://4js.com/ask-reuben/ig-271/  ·  有任何 Genero 技術問題或翻譯疑問,歡迎來信 support@t100.app