使用 MQTT 代理将客户端设备连接到AWS IoT Greengrass核心设备 - AWS IoT Greengrass

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 MQTT 代理将客户端设备连接到AWS IoT Greengrass核心设备

当您在AWS IoT Greengrass Core 设备上使用 MQTT 代理时,设备会使用该设备独有的核心设备证书颁发机构 (CA) 向代理颁发证书,以便与客户端建立双向 TLS 连接。

AWS IoT Greengrass将自动生成核心设备 CA,也可以提供您的 CA。连接客户端设备身份验证组件AWS IoT Greengrass时,会使用核心设备 CA 进行注册。自动生成的核心设备 CA 是永久性的,只要配置了客户端设备身份验证组件,设备就会继续使用相同的 CA。

当 MQTT 代理启动时,它会请求证书。客户端设备身份验证组件使用核心设备 CA 颁发 X.509 证书。当代理启动、证书过期或连接信息(例如 IP 地址)发生变化时,证书会轮换。有关更多信息,请参阅在本地 MQTT 代理上轮换证书

要将客户端连接到 MQTT 代理,您以下以下以下参数:

  • 客户端设备必须具有AWS IoT Greengrass核心设备 CA。您可以通过云发现或手动提供 CA 来获得此 CA。有关更多信息,请参阅使用您自己的证书颁发机构

  • 核心设备(CA)颁发的代理证书中的核心设备的完全限定域名(FQDN)或 IP 地址。您可以使用IP 探测器组件或手动配置 IP 地址来确保这一点。有关更多信息,请参阅管理核心设备端点

  • 客户端设备身份验证组件必须授予客户端设备连接到 Greengrass 核心设备的权限。有关更多信息,请参阅客户端设备身份验证

使用您自己的证书颁发机构

如果您的客户端设备无法访问云以发现您的核心设备,则可以提供核心设备证书颁发机构 (CA)。您的 Greengrass 核心设备使用核心设备 CA 为您的 MQTT 代理颁发证书。配置核心设备并向客户端设备预置其 CA 后,您的客户端设备即可连接到终端节点并使用核心设备 CA(自己提供的 CA 或自动生成)验证 TLS 握手。

要将客户端设备身份验证组件配置为使用您的核心设备 CA,请在部署组件时设置certificateAuthority配置参数。您提供以下细节在配置期间提供以下详细信息:

  • 核心设备 CA 证书的位置。

  • 核心设备 CA 证书的私钥。

  • (可选)如果核心设备 CA 是中间 CA,则证书链到根证书。

如果您提供核心设备 CA,则将 CAAWS IoT Greengrass 注册到云中。

您可以将证书存储在硬件安全模块或文件系统中。以下示例显示了使用 HSM/TPM 存储的中间 CA 的certificateAuthority配置。请注意,证书链只能存储在磁盘上。

"certificateAuthority": { "certificateUri": "pkcs11:object=CustomerIntermediateCA;type=cert", "privateKeyUri": "pkcs11:object=CustomerIntermediateCA;type=private" "certificateChainUri": "file:///home/ec2-user/creds/certificateChain.pem", }

在此示例中,certificateAuthority配置参数将客户端设备身份验证组件配置为使用文件系统中的中间 CA:

"certificateAuthority": { "certificateUri": "file:///home/ec2-user/creds/intermediateCA.pem", "privateKeyUri": "file:///home/ec2-user/creds/intermediateCA.privateKey.pem", "certificateChainUri": "file:///home/ec2-user/creds/certificateChain.pem", }

要将设备连接到AWS IoT Greengrass Core 设备,请执行以下操作:

  1. 使用您组织的根 CA 为 Greengrass 核心设备创建中间证书颁发机构(CA)。我们建议您使用中间 CA 作为最佳安全实践。

  2. 向 Greengrass 核心设备提供您的根 CA 的中间 CA 证书、私钥和证书链。有关更多信息,请参阅客户端设备身份验证:中间 CA 成为 Greengrass 核心设备的核心设备 CA,该设备将 CA 注册到AWS IoT Greengrass。

  3. 将客户端设备注册为AWS IoT事物。有关更多信息,请参阅AWS IoT Core开发者指南中的创建事物对象。将私有密钥、公有密钥、设备证书和根 CA 证书添加到您的客户端设备中。如何添加信息取决于您的设备和软件。

配置设备后,您可以使用证书和公钥链连接到 Greengrass 核心设备。您的软件负责查找核心设备端点。您可以手动为核心设备设置终端节点。有关更多信息,请参阅 手动管理端点