首页 > 解决方案 > IOT 设备如何在设备预置期间使用预置声明证书与 AWS IOT 连接?

问题描述

我计划通过 Flutter 应用程序将我的 IOT 设备 (ESP32) 连接到 AWS IOT Core,方法是自动创建所需的 IOT Thing 并生成所需的证书和密钥对。

设备和应用程序是隔离的(配置过程中除外),我不喜欢对 IOT 事物“名称”进行任何硬编码。我正在关注 AWS IOT 的文档(使用队列配置来配置没有设备证书的设备)。到目前为止,我已经在 AWS 上创建了一个 Fleet Provisioning 模板(在配置后将创建一个唯一的 IOT Thing),在其中附加了策略,还附加了一个 Provisioning 声明证书。此配置声明证书和附加的私钥已硬编码在我的 ESP32 代码中(使用 Arduino IDE)。

文档的另一部分指出“设备应使用 AWS IoT 设备和移动 SDK 连接到 AWS IoT 并使用安装在设备上的预置声明证书进行身份验证”。

我的问题是 - 由于我将 Arduino IDE 用于我的 ESP32 代码,我应该在设备配置部分的代码中包含哪些内容。此外,设备如何以及在何处使用配置声明证书进行连接,以及设备将如何获得新的证书和密钥以用于未来的连接(使用 MQTT API 的设备配置可能是解决方案之一,但它应该如何在 Arduino IDE 中使用?)

标签: amazon-web-servicesesp32provisioningaws-iot

解决方案


我猜您是在设备本身上生成 RSA 密钥对?您希望谁签署设备证书 - AWS IoT Core 或您自己的 KMS 提供商?

如果对于上述问题,答案是“是”,那么,

  1. 您可能需要在 AWS IoT Core 上注册您的 CA 证书(谁正在签署您的设备证书)
  2. 针对 CA 证书在 AWS IoT Core 上配置 JITP 模板。

您可以配置模板,使 JITP 进程读取设备证书的主题 CN(假设 CN 将是您的设备名称)并将 CN 映射到事物名称。此外,它将分配所需的策略。

当您使用 MQTT 协议提供设备证书(以及证书链)连接设备时,这一切都将在第一次发生。

这是JITP的参考链接。


推荐阅读