使用https FCM时出现SSL错误

时间:2017-02-09 09:30:08

标签: ssl

我使用fcm文档为web实现了FCM。 如果我将网址设置为:' http://xxx'那么一切都会好起来的。我没有错误。 但是当我设置网址:' https://xxx ..'时,我收到错误:

"无法注册ServiceWorker:获取脚本时发生SSL证书错误。" 代码:"消息传递/失败 - serviceworker-registration" "消息:我们无法注册默认服务工作者。无法注册ServiceWorker:获取脚本时发生SSL证书错误。 (消息/失败-serviceworker注册)"

有人可以告诉我如何修复此错误吗?

1 个答案:

答案 0 :(得分:2)

当想要在没有适当SSL证书的本地开发环境中测试服务工作者时,这是一个普遍问题。它不是特定于Firebase Messaging,而是与服务工作者有关。

以下是我在使用Google Chrome时找到的解决方案:Testing Service workers locally with self-signed certificates

不幸的是,我还不知道如何在其他浏览器中传播问题,但可能必须采用类似的方式。

对于Chrome,您需要启动Chrome的新实例,并使用一些标志告知其忽略本地源的SSL证书错误:

在Linux(也许是Mac)中:

google-chrome --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://127.0.0.1 --user-data-dir=/tmp/foo

此处https://127.0.0.1是您的应用(和服务工作者)在本地托管的位置。如果在与标准HTTPS端口443不同的端口上提供服务,则可能需要对此进行调整以使用适当的端口,例如: {3000}在端口3000上通过HTTPS提供应用时的https://127.0.0.1:3000。 如果另一个Chrome实例已在运行,则--user-data-dir=/tmp/foo是使用新用户个人资料启动新实例所必需的。

在Windows中(可能因chrome.exe的位置而异):

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=https://localhost:1123

同样,您可能需要调整端口。