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

诊断连接问题

帮助我们改进此主题

成功连接到 Amazon IoT 需要:

  • 有效的连接

  • 有效且已激活的证书

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

连接

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

正确的 SNI 值是由 describe-endpoint 或者 describe-domain-configuration 命令返回的 endpointAddress。它是与上一步中的终端节点相同的地址。

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

您可以使用 Amazon Device Advisor 帮助进行故障排除。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 检查有效的证书和 Server Name Indication (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 终端节点和配额