使用Progressive Web App与Raspberry PI上的Python Web服务器通信时出现SSL问题



我正在尝试创造一种可以用智能手机控制的测量设备。

我的情况
  • 我使用设备的地方没有任何可用的互联网连接。
  • 测量设备使用树莓派,它创建一个本地WiFi网络与智能手机通信。
  • 有一个Python web服务器在RPI上运行。
  • 智能手机安装了PWA,用于向RPI的web服务器发送命令。
  • PWA托管在GitHub Pages(默认使用HTTPS)。
  • 安装后,PWA应该在没有互联网连接的情况下工作(只使用RPI WiFi)。

我的目标是通过使用我的智能手机上的PWA成功地向RPI上的Python web服务器发送请求。

我的问题在PWA内获取Python web服务器时,我收到Mixed Content错误,因为PWA托管在HTTPS上(也需要HTTPS),但Python服务器不是。
当我尝试使用OpenSSL创建的自签名证书时,我收到ERR_CERT_AUTHORITY_INVALID错误。
我尝试使用让我们加密,但CertBot需要一个实际的域。我只有一个IP地址,这是RPI在自己的WiFi网络中的IP。

我该怎么办?

我通过注册指向127.0.0.1(localhost)的免费.tk域并使用来自Let's Encrypt的Certbot来创建SSL证书来解决我的问题。
为了用Certbot验证域,我使用了TXT记录验证。
为了在没有互联网连接的情况下使用域,我在RPI的dnsmasq配置文件中添加了一个指向localhost的相同.tk域的DNS记录。
我的python网络服务器然后使用证书文件建立/HTTPS所以我移动设备上的水疗服务请求数据时不会抛出一个错误。