诊断连接问题 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

诊断连接问题

帮助我们改进此主题

要成功连接到, Amazon IoT 需要:

  • 有效的连接

  • 有效且已激活的证书

  • 允许所需连接和操作的策略

Connection

如何找到正确的终端节点?
如何找到正确的 Server Name Indication (SNI) 值?

正确的 SNI 值是由 describe-endpoint 返回的 endpointAddress 或由 describe-domain-configuration 命令返回的 domainName。它是与上一步中的终端节点相同的地址。将设备连接到时 Amazon IoT Core,客户端可以发送服务器名称指示 (SNI) 扩展名,这不是必需的,但强烈建议这样做。要使用多账户注册自定义域VPC 端点等特征,必须使用 SNI 扩展。有关更多信息,请参阅中的传输安全 Amazon IoT

我该如何解决持续存在的连接问题?

您可以使用 Amazon 设备顾问来帮助排除故障。Device Advisor 的预构建测试可帮助您根据最佳实践验证您的设备软件,以便使用 TLSMQTTAmazon IoT 设备影子Amazon IoT Jobs

以下是现有 Device Advisor 内容的链接。

身份验证

设备必须经过身份验证才能连接到 Amazon IoT 端点。对于用于身份验证X.509 客户端证书的设备,证书必须注册 Amazon IoT 并处于活动状态。

我的设备如何对 Amazon IoT 端点进行身份验证?

将 Amazon IoT CA 证书添加到客户的信任存储中。请参阅 Amazon IoT Core 中的服务器身份验证上的文档,然后通过链接下载适当的 CA 证书。

设备连接时会检查什么 Amazon IoT?

当设备尝试连接到 Amazon IoT 时:

  1. Amazon IoT 检查证书和服务器名称指示 (SNI) 值是否有效。

  2. Amazon IoT 检查使用的证书是否已在 Amazon IoT 账户中注册并已激活。

  3. 当设备尝试在中 Amazon IoT执行任何操作(例如订阅或发布消息)时,系统会检查其用于连接的证书所附的策略,以确认该设备已获得执行该操作的授权。

如何验证证书的配置是否正确?

请使用 OpenSSL s_client 命令测试与 Amazon IoT 终端节点的连接:

openssl s_client -connect custom_endpoint.iot.aws-region.amazonaws.com:8443 -CAfile CA.pem -cert cert.pem -key privateKey.pem

有关如何使用 openssl s_client 的更多信息,请参阅 OpenSSL s_client 文档

如何检查证书的状态?
  • 列出证书

    如果您不知道该证书 ID,则可以使用 aws iot list-certificates 命令查看所有证书的状态。

  • 显示证书的详细信息

    如果您知道证书的 ID,此命令将显示有关证书的更详细信息。

    aws iot describe-certificate --certificate-id "certificateId"
  • 在 Amazon IoT 控制台中查看证书

    Amazon IoT 控制台,在左侧菜单中,选择 Secure(安全),然后选择 Certificates(证书)。

    从列表中选择用于连接的证书以打开其详细信息页面。

    在证书的详细信息页面中,您可以查看其当前状态。

    证书的状态可以通过使用详细信息页面右上角的 Actions(操作)菜单来更改。

授权

Amazon IoT 资源Amazon IoT Core 政策用于授权这些资源执行操作。要对某项操作进行授权,指定的 Amazon IoT 资源必须附有一份策略文档,以授予执行该操作的权限。

我收到了代理发送的 PUBNACKSUBNACK 回复。我应该怎么办?

请确保在您用来调用的证书上附有策略 Amazon IoT。默认情况下,所有的发布/订阅操作均将被拒绝。

确保附加的策略授权您尝试执行的操作

确保附加的策略授权正在尝试执行授权操作的资源

我的日志中有一个 AUTHORIZATION_FAILURE 的条目。

请确保在您用来调用的证书上附有策略 Amazon IoT。默认情况下,所有的发布/订阅操作均将被拒绝。

确保附加的策略授权您尝试执行的操作

确保附加的策略授权正在尝试执行授权操作的资源

如何检查策略授权的内容?

Amazon IoT 控制台,在左侧菜单中,选择 Secure(安全),然后选择 Certificates(证书)。

从列表中选择用于连接的证书以打开其详细信息页面。

在证书的详细信息页面中,您可以查看其当前状态。

在证书详细信息页面的左侧菜单中,选择 Policies(策略)查看附加到该证书的策略。

选择所需策略以查看其详细信息页面。

在策略的详细信息页面中,查看策略的策略文档以查看它授权的内容。

选择 Edit policy document(编辑策略文档)对策略文档进行更改。

安全和身份

当您为 Amazon IoT 自定义域配置提供服务器证书时,这些证书最多有四个域名。

有关更多信息,请参阅 Amazon IoT Core 终端节点和限额