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

时间:2018-06-18 14:17:09

标签: android google-chrome-devtools service-worker

我正在开发一个渐进式网络应用程序,为了确保它能够在移动设备上运行(特别是在Chrome for Android上,因为它有90%的用户使用),我&#39 ;我试图在Android设备上测试服务工作者。

不幸的是,在 Chrome for Android 上,我无法注册服务工作者

  

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

     

无法加载资源:net :: ERR_CERT_AUTHORITY_INVALID

我知道服务工作者需要通过HTTPS提供服务,因此我的webapp有一个自签名证书。它不受浏览器的信任,但无论如何仍然可以继续。使用Firefox for Android时,没问题我可以签署推送通知并注册服务工作者,但使用Chrome无法正常工作

在Chrome for Desktop上,可以使用开发工具通过非安全源启用服务工作者。我希望找到我可以在移动设备上使用的等效标志,但不存在。

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

我发现了一个老问题,对同一问题没有任何有用的答案there,并决定打开这个问题以获得可见性。

2 个答案:

答案 0 :(得分:2)

从你引用的其他StackOverflow帖子中,我可以看到解决方案就在问题中。

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

为何具体使用证书颁发机构.crt?

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

如何获得CA证书?

通常,证书颁发机构(CA)充当受信任的第三方。出于调试目的,您可以充当CA以自行发布自签名证书。

  1. 创建根密钥:openssl genrsa -des3 -out rootCA.key 4096(警告:持有此密钥的任何人都可以代表您签署证书!)

  2. 创建并签署根证书:openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt

  3. 请记住,您的webapp的 SSL证书需要使用相同的自创CA 生成。

    在Android设备上安装证书

    获得.crt文件后,将其复制到设备中。然后转到设置>安全>从存储中安装。它应该检测证书并允许您添加它。

    要确保正确安装,请转到受信任的凭据> 用户

答案 1 :(得分:0)

我通过portforwarding解决了这个问题。您可以在以下原始答案中找到更多信息:https://stackoverflow.com/a/56146180/5048121