提问者:小点点

在Android移动设备上使用 Chrome 调试服务工作者


我正在开发一个渐进式网络应用程序,为了确保它在移动设备上运行(尤其是在Android的Chrome,因为它是90%的用户),我正在尝试在Android设备上测试服务工作者。

不幸的是,在Android的Chrome上,我无法注册服务人员:

获取脚本时发生SSL证书错误。

未能加载资源:net::ERR_CERT_AUTHORITY_INVALID

我知道服务人员需要在HTTPS接受服务,所以我为我的webapp提供了一个自签名证书。它不被浏览器信任,但仍然有可能继续。在Android上使用Firefox时,我可以登录推送通知和注册服务人员,但在Chrome上就不行了。

在Chrome for desktop上,可以使用开发工具在不安全的来源上启用服务人员。我希望找到可以在手机上使用的等效标志,但没有。

有没有办法授权 Chrome Android 上的服务工作者进行调试?

我发现了一个关于同样问题的老问题,没有有用的答案,于是决定公开这个问题。


共2个答案

匿名用户

从你提到的另一篇StackOverflow帖子中,我可以看到问题的解决方案。

您需要将证书颁发机构crt添加到您的Android信任列表中。

为什么专门使用证书颁发机构 .crt ?

仅仅因为Android只接受CA证书。

如何获得CA证书?

通常,证书授权中心(CA)充当受信任的第三方。出于调试目的,您可以充当CA自己颁发自签名证书。

> < li>

创建根密钥:< code > OpenSSL gen RSA-des 3-out rootca . key 4096 (警告:持有此密钥的任何人都可以代表您签署证书!)

创建根证书并对其进行自签名:openssl req-x509-new-node-key rootCA. key-sha256-day 1024-out rootCA.crt

请记住,您的webapp的SSL证书需要使用同一个自行创建的CA来生成。

在Android设备上安装证书

获得. crt文件后,将其复制到设备中。然后转到设置

要确保正确安装,请转到可信凭据

匿名用户

我通过端口转发解决了这个问题。你可以在我的原始回答中找到更多信息:https://stackoverflow.com/a/56146180/5048121