vue.js - esp32 https 服务器的 SSL 证书

标签 vue.js ssl web-applications server esp32

我对不安全的 SSL 证书有疑问。我的项目由两部分组成:

  1. 带 https 服务器的 ESP32 物联网设备
  2. 部署到 Firebase 托管的 VUE2 + Vuetify PWA 网络应用程序。

想象一下,一位客户购买了我的物联网设备,并将其连接到电源。设备将以 AP 模式启动,创建一个 WiFi AP 网络。 客户端登录到 Web 应用程序并想要添加他的新设备。因此,为此,物联网设备需要客户端 wifi 凭据。 网络应用程序向客户端询问他的 ssid 和密码,当客户端点击“配置设备”时,网络应用程序向 esp32 服务器发送一个 https POST 请求,这就是问题所在...... 由于 esp32 服务器中使用的 SSL 证书未经权威机构验证,因此 Web 应用程序无法发出 POST 请求...

如何为大量物联网设备获取有效的服务器 SSL 证书?我不知道如何处理这种情况...

谢谢大家!!

最佳答案

可以为设备获取有效的 SSL 证书,但我不推荐这样做。如果你愿意,你可以这样做:

  1. 确保当您的设备处于 AP 模式时,它始终可以使用完全相同的 IP 地址。例如,确保 ESP32 正在监听 192.168.1.1

  2. 注册一个域,如 example.com。将 A 记录添加到 iot.example.com 的 DNS 服务器,值为 192.168.1.1

  3. 从任何受信任的机构为 iot.example.com 获取有效的 SSL 证书。将该证书和关联的 key 放在您的设备上。

现在,当您的用户连接到您的软 AP 时,他们可以浏览到 https://iot.example.com 并实际看到一个有效的证书。


但是,我真的建议不要这样做。您将面临三个主要问题:

  1. 您的 SSL 证书的 key 将在您设备的闪存上。如果有人提取它,他们可以伪装成 iot.example.com。您可以通过使用闪存加密来缓解这种情况,但它仍然不是很好。

  2. SSL 证书的最长有效期约为两年。因此,您的供应流程将在几年后中断。

  3. 如果颁发您的证书的 CA 听说私钥四处漂浮并且可能被泄露,他们可能会吊销您的证书。

相反,您应该做的是使用 WPA2 保护您的软 AP,以及您可以提供给用户的密码。这将确保连接是加密的,并且您可以通过 HTTP 而不是 HTTPS 提供您的配置表单。

比自己尝试实现更好的方法是使用 ESP-IDF unified provisioning API .它负责实现细节,并支持 Wi-Fi 和蓝牙作为传输方式。

无论您决定做什么,我都强烈建议您阅读 the ESP-IDF documentation on unified provisioningthe documentation on Wi-Fi provisioning ,因为它们会让您了解幕后发生的事情以及安全实现所需的一切。特别是,您会看到 Wi-Fi 配置库实际上使用我上面建议的静态 WPA2 密码。

关于vue.js - esp32 https 服务器的 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59828581/

相关文章:

javascript - 将多个属性绑定(bind)到 Vuetify 中的文本字段标签

PHP:无法连接到主机。如何使用 OpenSSL 将外部证书添加到受信任的?

ssl - Kubernetes:x509 证书由未知权威签署,可能是因为 ECDSA 验证失败

java - 在本地主机上运行 Web 应用程序

vue.js - Vue Electron,开发工具抛出异常

javascript - 最后使用空值自定义排序 v-data-table

vue.js - 删除 Vue js 路由 url 标签

node.js - 从 nodejs 调用 https - 将数字 cer 文件放在哪里?

asp.net - 多线程环境下的文件访问策略(Web App)

java - 使用 Java 创建固定长度的平面文件