本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将应用程序连接到 EMQX 代理上AWS IoT SiteWiseEdge
EMQX 代理在端口 8883 上使用传输层安全 (TLS) 来加密所有通信,确保您的数据在传输过程中受到保护。本节将引导您完成在应用程序和 EMQX 代理之间建立连接的步骤。遵循这些步骤有助于维护工业数据的完整性和机密性。连接过程包括两种主要方法:通过组件使用自动 IP 发现,或者在 TLS 证书中手动将 DNS 名称和 IP 地址配置为主题备用名称 (SAN)。每种方法都有其自身的优势,具体取决于您的网络设置和安全要求。本文档将指导您完成这两个选项。
主题
配置 TLS 以实现与 EMQX 代理的安全连接AWS IoT SiteWiseEdge
默认情况下,为 EMQX 代理AWS IoT Greengrass生成由核心设备证书颁发机构 (CA) 签名的 TLS 服务器证书。有关更多信息,请参阅使用 MQTT 代理将客户端设备连接到AWS IoT Greengrass核心设备。
检索 TLS 证书
要获取 CA 证书,请在网关主机上运行以下命令:
将 ca.pem 文件的内容复制到要连接到代理的外部应用程序中。将其保存为 BrokerCoreDeviceCA.pem。
向 TLS 服务器证书添加自定义 DNS names/IP 地址
由生成的证书上的主题备用名称 (SAN) AWS IoT Greengrass 是localhost。从网关主机外部建立 TLS 连接时,TLS 验证步骤会失败,因为代理的主机名与服务器证书localhost上的主机名不匹配。
为了解决主机名不匹配的问题,AWS IoT Greengrass提供了两种管理核心设备端点的方法。本节涵盖这两个选项。有关更多详细信息,请参阅《AWS IoT Greengrass Version 2开发人员指南》中的管理核心设备端点。
-
要使用核心设备的 IP 地址连接到 EMQX 代理,请使用自动 IP 发现部分。
-
要使用 DNS 名称而不是 IP 地址连接到 EMQX 代理,请使用手动管理部分。
测试 EMQX 代理连接AWS IoT SiteWiseEdge
使用 TLS 证书和身份验证凭证配置 EMQX 代理后,请务必验证您的设置是否正常运行。测试连接有助于确保您的安全配置得到正确实施,并且客户端可以成功地与代理建立加密连接。本节演示如何使用 Mosquitto 命令行接口 (CLI) 客户端(一种广泛使用的支持 TLS 加密和身份验证的 MQTT 客户端工具)测试您的代理连接。
使用 Mosqitto CLI 客户端测试 EMQX 代理连接
在此步骤中,我们将使用 mosquitto CLI 客户端来测试我们的设置,并确保我们可以使用之前创建的用户名和密码成功连接到代理。要获取BrokerCoreDeviceCA.pem步骤 3:设置 TLS 下的以下步骤。
mosquitto_sub -hhostname|ip address\ -p 8883 \ -t "#" \ -q 1 \ -uusername-Ppassword\ --cafile BrokerCoreDeviceCA.pem
注意
如果您要连接 hostname/IP 的地址与您传递给客户端的 CA 证书上的主题备用名称 (SAN) 不匹配,则可能会 SSL:verify 出现错误。有关如何使用正确的 SAN 获取证书,请参阅步骤 3:设置 TLS 下的 “向 TLS 服务器证书添加自定义 DNS names/IP 地址”。
此时,所有用户都可以发布和订阅经纪商上的所有主题。继续执行为设置授权规则AWS IoT SiteWiseEMQX 中的优势。
使用你自己的 CA
AWS IoT Greengrass概述了如何将自己的客户端设备身份验证组件配置为使用自己的证书颁发机构 (CA)。客户端设备身份验证组件(aws.greengrass.clientdevices.Auth)对客户端设备进行身份验证并授权客户端设备操作。有关更多信息,请参阅《AWS IoT Greengrass Version 2开发人员指南》中的使用自己的证书颁发机构。
要使用自己的 CA,请将该aws.greengrass.clientdevices.Auth组件添加到您的部署中,以便您可以指定自定义配置。