使用自签名证书在 chrome android 上远程调试 service worker

Posted

技术标签:

【中文标题】使用自签名证书在 chrome android 上远程调试 service worker【英文标题】:Remotely debugging service worker on chrome android with self signed certificate 【发布时间】:2017-03-12 22:21:01 【问题描述】:

我试图调试从我的开发机器提供的服务工作者,并在智能手机上的 chrome android 中运行。

我正在使用 USB 连接并从我的开发机器进行远程调试。服务人员仅在 https 中工作,我可以忍受,chrome 和 firefox 都拒绝注册 SW。

然后我在我的开发机器上使用了自签名证书,这显然不受移动浏览器的信任。他们警告说证书不好,但可以选择继续使用该证书。我点击是,虽然从那时起 Firefox 能够注册 SW chrome,但仍然抱怨证书不好并拒绝注册 SW。

我尝试将自签名 CA 包含在智能手机信任列表中,但没有找到方法。最后,我不得不从带有常规证书的生产服务器提供应用程序,我一点也不喜欢,但我不能在这个问题上浪费一整天。

如何远程调试从 LAN 中的开发机器提供的 android 上的 service worker? localhost 不能使用,因为它们是 2 个独立的设备。我找到了一个设置来忽略 chrome 但桌面版本的 https 警告,我使用的是 android chrome,如何禁用这个无聊的阻塞错误?

谢谢

【问题讨论】:

嘿,你找到这个问题的答案了吗? 其实,我只是发现:michielsioen.be/2019-11-23-the-pwa-experiment-pt2-debugging 【参考方案1】:

我也面临同样的问题。我已经为我个人使用的推送通知编写了 service worker。当我在 localhost 上运行它时,它在我的桌面浏览器上运行良好。但我想在移动设备上收到通知,所以我尝试了许多选项来完成相同的操作,在移动设备上将远程 IP 作为本地主机运行、USB 调试、添加 ssl 证书和许多其他黑客,但对我没有任何帮助。但随后适用于 Android 手机的“Kick Web Server”应用程序救了我,只需几分钟即可使用 localhost 在移动浏览器上运行我的应用程序并注册服务工作者。所以不再需要 SSL 和 USB 调试。

步骤

转到 playstore 并搜索“Kick Web Server”应用(注意:搜索结果后将显示“Web Server phpMyAdmin/mysql”with icon like this)。 不用担心您不需要 PHP 或 Mysql 来使用此应用程序,您可以使用任何技术堆栈轻松运行您的网站。 打开应用程序会询问您访问存储的权限,您必须授予它权限。 返回应用程序并单击停止按钮以启动 Web 服务器。 它将在您的移动存储中创建名为 htdocs 的目录/文件夹。 从 htdocs 目录中删除现有内容(两个现有文件)。 在 htdocs 目录中复制带有 index.html 的构建内容。 在您的移动浏览器中访问http://localhost:8080,您将看到您的网站已启动并运行,并已注册服务工作者。

【讨论】:

以上是关于使用自签名证书在 chrome android 上远程调试 service worker的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Linux Chrome 和 Firefox 上信任自签名 localhost 证书

如何在 Chrome 信任的本地 Windows 虚拟主机开发机器上创建/安装自签名 SSL 证书? [复制]

在 Android WebView 上具有自签名证书的服务工作者

解决自签名证书在Chrome上的“不是私密连接问题”

LocalHost 的自签名证书上的 Chrome NET::ERR_CERT_AUTHORITY_INVALID 错误

Chrome 58 自签名证书