【问题标题】:Debug service worker with Chrome on Android mobile在 Android 移动设备上使用 Chrome 调试 service worker
【发布时间】:2019-05-15 17:51:59
【问题描述】:

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

很遗憾,在 Android 版 Chrome 上,我无法注册服务人员

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

加载资源失败:net::ERR_CERT_AUTHORITY_INVALID


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

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

有没有办法授权 Chrome Android 上的 service worker 用于调试目的


我发现了一个关于同一问题的旧问题there 没有有用的答案,因此决定公开这个问题以供大家参考。

【问题讨论】:

  • 您可以将您的桌面开发工具连接到 android 上的 chrome,也许它会为启用 SW 提供相同的技巧。
  • @wOxxOm 很遗憾,我找不到让它这样工作的方法

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


【解决方案1】:

从您所指的其他 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

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


在 Android 设备上安装证书

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

要确保它已正确安装,请转到可信凭据 > 用户

【讨论】:

  • 我添加了已经创建的 CA 证书,但无论如何感谢您的解释步骤。我添加了它,它的工作原理!
  • 我在手机上安装了自信任 CA,但仍然收到不安全挂锁警告。我提交了我的步骤here
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 2020-03-13
    • 2020-10-11
    • 1970-01-01
    • 2016-08-17
    • 2015-07-11
    • 2013-11-22
    • 2017-12-14
    • 1970-01-01
    相关资源
    最近更新 更多