2016-08-02 87 views
18

我有用於測試的開發人員服務器。他們擁有SSL自簽名證書,這使我們可以通過HTTPS測試Web應用程序,但顯着警告證書不可驗證。您可以將服務工作人員用於自簽名證書嗎?

這很好,但我有一個服務人員拋出一個錯誤與navigator.serviceWorker.register

SecurityError: Failed to register a ServiceWorker: An SSL certificate error occurred when fetching the script.

如何使用服務工作者與具有自簽名證書的內聯網測試服務器?

+0

爲什麼不簡單地使用有效的證書? – Tom

+0

@Tom這些是內部測試系統,沒有預算購買有效的系統。 – Keith

+3

買?如果它不是通配符,那麼可以使用我們的免費加密:http://letsencrypt.org/ – Tom

回答

8

作爲使用自簽名證書的替代方法,您可以啓動Chrome或Firefox,以便它假裝某些域是安全的。例如,在Mac上使用Chrome,則可以使用啓動它:然後

/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ --user-data-dir=/tmp/foo --unsafely-treat-insecure-origin-as-secure=http://www.your.site

服務工作者應該從http://www.your.site工作。

更多信息可以在這裏找到: Options for testing service workers via HTTP

編輯:改變--unsafety-...--unsafely-...

+5

注意:'--allow-insecure-localhost'標誌在本地開發時也很有用 – vine77

+0

我試過這樣,我仍然得到相同的錯誤: ./chrome --unsafely-treat -insecure-origin-as-secure = http://192.168.120.49:3000。我也試過用dir指定。請hlep – maths

1

地方發展,我們使用自簽名的證書。克服與OSX上的本地開發有關的問題。我們做了以下內容:

  • 創建您的證書,併成爲它
  • 導航到HTTPS URL
  • 開放開發工具>安全>查看證書
  • 拖動證書圖標到桌面並雙擊上它會打開鑰匙串訪問。
  • 拖動證書圖標進行登錄,打開登錄並雙擊證書(應該用dev域名或類似名稱) 打開信任下拉列表並選擇始終信任。回到你的應用關閉窗口並重新打開https,你現在應該爲你的開發域名設置'虛擬'https。