android - 在 Android 移动设备上使用 Chrome 调试服务 worker

标签 android google-chrome-devtools service-worker

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

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

An SSL certificate error occurred when fetching the script.

Failed to load resource: net::ERR_CERT_AUTHORITY_INVALID


我知道 service worker 需要通过 HTTPS 提供服务,所以我有一个用于我的 webapp 的自签名证书。它不受浏览器信任,但仍然可以继续进行。使用适用于 Android 的 Firefox 时,没问题,我可以签名推送通知并注册服务工作人员,但使用 Chrome 它无法正常工作

在桌面版 Chrome 上,可以使用开发工具在非安全源上启用服务工作线程。我希望找到可以在移动设备上使用的等效标志,但不存在。

有没有办法在 Chrome Android 上授权 service worker 进行调试


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

最佳答案

从您所指的另一篇 StackOverflow 帖子中,我可以看出解决方案就在问题中。

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


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

因为 Android 只接受 CA 证书。


我如何获得 CA 证书?

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

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

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

请记住,您的网络应用程序的SSL 证书需要使用相同的自行创建的 CA 生成


在安卓设备上安装证书

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

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

关于android - 在 Android 移动设备上使用 Chrome 调试服务 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50911518/

相关文章:

java - Android - 按计划运行提示

android - Appium:为什么我在提供了所有相关值后仍会在日志中看到 desiredcapabilties 错误?

css - Chrome 没有将我浏览器中的更改传送到我的本地文件

angularjs - 广播根范围变化

javascript - 如何从 ServiceWorker 流式传输视频?

android - 防止 GoogleApiClient 在 onStop() 上断开连接

Android AnimationDrawable返回空指针异常

webpack - Chrome 开发者工具 : local overrides for JS files from Webpack Source Map

wordpress - 特定文件的自定义 HTTP header

service-worker - Service Worker 是否有 "exit"事件?