带有自签名证书的服务工作者“定期同步”

问题描述

设置: 我有一个运行带有自签名证书的 HTTPS 服务器的 ESP32。它提供了一些家庭自动化设备的状态信息。
现在我构建了一个基于 Vue 的 PWA,它由具有常规证书的公共 HTTPs-Server 提供服务。 PWA 通过 https://192.168... 向本地网络中的 ESP 请求数据...

在我的移动设备上安装 PWA 后,Chrome 会警告我我的 PWA 访问来自不受信任的证书 https 的内容(这对我来说是完全合理的)。
作为一种解决方法,我必须执行以下操作(仅一次):在 Chrome 中访问 https://192.168...,在那里我收到“NET::ERR_CERT_AUTHORITY_INVALID”的警告并允许此不受信任的访问。 在这个变通办法之后,即使在重新启动和更新之后,PWA 也能很好地与 ESP32 配合使用。

我想每天使用 PeriodicSync-API 从我的 ESP32 获取一次状态,并在出现问题时在我的移动设备上显示通知。 我设置了 service-worker 来监听 periodicsync 事件,然后通过 https 监听来自 ESP32 的 fetch() 数据。

问题:

如果我通过 chrome://inspect/#devices 连接到我的设备并模拟“periodicsync”事件,这将正常工作。
但是,如果我将应用程序单独放置 12-24 小时并最终触发常规 periodicsync-事件,则 fetch(...) 会捕获错误,原因如下:TypeError: Failed to fetch

我的猜测(在这个问题上花了很多时间之后)是这个错误与不受信任的证书有关。 chrome好像记得我同意了只要PWA开放就可以不安全的访问,但是对于service-worker没有采用这个协议。

问题: 任何想法如何信任服务工作者中的自签名证书或告诉服务工作者它应该使用与 PWA 相同的权限?

不可行的是:

  • 使用特定标志启动浏览器
  • 在 ESP32 上使用付费的长期证书

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)