在Android mobile上使用Chrome调试服务人员

在Android mobile上使用Chrome调试服务人员,android,google-chrome-devtools,service-worker,Android,Google Chrome Devtools,Service Worker,我正在开发一个渐进式的webapp,为了确保它能在移动设备上运行(尤其是在chromeforandroid上,因为它有90%的用户),我正在尝试在Android设备上测试service worker 不幸的是,在Android版Chrome上,我无法注册服务人员: 获取脚本时发生SSL证书错误 未能加载资源:net::错误证书颁发机构无效 我知道服务人员需要通过HTTPS获得服务,所以我有一个用于我的webapp的自签名证书。浏览器不信任它,但仍然可以继续。使用Firefox for Andr

我正在开发一个渐进式的webapp,为了确保它能在移动设备上运行(尤其是在chromeforandroid上,因为它有90%的用户),我正在尝试在Android设备上测试service worker

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

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

未能加载资源:net::错误证书颁发机构无效


我知道服务人员需要通过HTTPS获得服务,所以我有一个用于我的webapp的自签名证书。浏览器不信任它,但仍然可以继续。使用Firefox for Android时,没问题,我可以登录推送通知并注册服务人员,但使用Chrome时,它不起作用

在Chrome for desktop上,可以使用开发工具在非安全源上启用service worker。我希望找到我可以在手机上使用的同等标志,但没有

有没有办法授权Chrome Android上的服务人员进行调试



我发现了一个关于同一问题的老问题,但没有任何有用的答案,于是决定公开这个问题。从你提到的另一篇StackOverflow文章中,我可以看出解决方案就在这个问题中

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


为什么特别指定证书颁发机构.crt?

因为Android只接受CA证书


如何获得CA证书?

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

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

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

  • 请记住,您的webapp的SSL证书需要使用相同的自建CA生成


    在Android设备上安装证书

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


    要确保安装正确,请转到Trusted Credentials>User。

    我通过端口转发解决了此问题。您可以在我的原始答案中找到更多信息:

    您可以将桌面devtools连接到android上的chrome,也许它会为启用SW提供相同的技巧。@wOxxOm遗憾的是,我找不到一种方法让它以这种方式工作。我添加了一个CA证书,但无论如何感谢您的解释步骤。我添加了它,它的工作!我在手机上安装了自我信任的CA,但仍然收到不安全的挂锁警告。我列队前进