我正在开发一个渐进式 Web 应用程序,为了确保它可以在移动设备上运行(特别是在 Android 版 Chrome 上,因为它有 90% 的用户),我正在尝试在 Android 设备上测试 Service Worker。
不幸的是,在安卓版 Chrome, I'm 无法注册 Service Worker :
获取脚本时发生 SSL 证书错误。
无法加载资源:net::ERR_CERT_AUTHORITY_INVALID
我知道 Service Worker 需要通过 HTTPS 提供服务,所以我有一个自签名证书对于我的网络应用程序。它不受浏览器信任,但无论如何仍然可以继续。使用 Android 版 Firefox 时,没问题,我可以签名推送通知并注册服务工作线程,但是Chrome 无法正常工作.
在桌面版 Chrome 上,可以使用开发工具在非安全源上启用 Service Worker。我希望找到可以在移动设备上使用的等效标志,但不存在。
有没有办法在 Chrome Android 上授权 Service Worker 用于调试目的?
我发现一个老问题,没有有用的答案there https://stackoverflow.com/questions/40331932/remotely-debugging-service-worker-on-chrome-android-with-self-signed-certificate关于同一个问题,并决定开放此问题以提高可见度。
从您提到的其他 StackOverflow 帖子中,我可以看到解决方案就在问题中。
你需要add a 证书颁发机构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
请记住您的网络应用程序的SSL证书需要使用同一个自创建的CA来生成.
在 Android 设备上安装证书
获得 .crt 文件后,将其复制到您的设备中。然后去设置 > 安全 > 从存储安装。它应该检测证书并让您添加它。
要确保其安装正确,请转至可信凭证 > User.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)