我的公司将在他们的设备中使用 ESP32。我必须编写允许从 HTTPS 服务器下载 ESP32 OTA 更新的代码。 TLS 服务器的根证书每年过期一次。这是我的问题:如果证书已过期,如何安全地从服务器下载新证书?如果证书过期,我将失去对 ESP 的远程控制,并且无法向其上传新文件。例如,Chrome 或 Firefox(据我了解)等网络浏览器会更新其 CA 商店,而用户甚至不会注意到它。可以在 ESP32 上实现该功能吗?
我唯一的想法是连接第二个网站(HTTP,而不是 HTTPS),然后下载新证书。但我必须一直使用TLS,所以这个解决方案是不可接受的。我是网络技术新手,需要帮助和提示!
您确定服务器使用根证书,而不是中间证书吗?浏览器和嵌入式设备之间的区别在于,无论您当前的版本有多旧,您仍然可以使用简单的离线安装程序更新浏览器。对于嵌入式设备,OTA 服务器是唯一的生命线 - 如果设备无法与服务器通信,则无法更新。它变成了僵尸,只能通过电缆更新,这通常是不可行的。
如果您的嵌入式设备的 OTA 依赖于具有 1 年根证书的 PKI,我想说您的处境很糟糕。这要求每台设备无一例外地在前一个设备轮换之前更新其根证书,留下的任何人都是僵尸。如果您确定可以在截止日期之前更新全部,请继续这样做。请注意几个月无法访问互联网的设备(例如,因为它们位于仓库中)。
这是我按个人喜好排列的解决方案列表: