我没有使用localhost来测试服务工作者。服务器具有自签名证书,并且正在运行。
尝试从FCM获取推送令牌时,它显示: ServiceWorker注册失败:DOMException:无法注册ServiceWorker:获取脚本时发生SSL证书错误。
FCM服务工作者可以使用服务器自签名证书吗?
它是一个临时服务器,因此我们不会为服务器购买ssl证书。
答案 0 :(得分:0)
看起来您无法使用具有自签名证书的服务工作者。
使用自定义标记运行Chrome以白名单列出您的域名以进行测试:
rowid
确保使用安装Chrome的正确路径。
参见https://stackoverflow.com/a/43484456/545726 并https://deanhume.com/home/blogpost/testing-service-workers-locally-with-self-signed-certificates/10155
答案 1 :(得分:0)
要添加到艾哈姆对此问题的回答中
我测试了以下最新浏览器,以使其与这些参数一起使用:
open -a Opera.app --args --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:8111
open -a Brave\ Browser.app --args --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:8111
open -a Google\ Chrome.app --args --user-data-dir=/tmp/foo --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:8111
Chromium浏览器未从这些设置开始,以允许克服此特定的DomException以便在本地将SSL与Service Worker一起使用。
此人也提供了有关此事的一些见解:https://deanhume.com/testing-service-workers-locally-with-self-signed-certificates/