诊断连接问题 - 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 控制台,在左侧菜单中,选择安全,然后选择证书

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

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

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

Authorization

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

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

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

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

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

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

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

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

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

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

Amazon IoT 控制台的左侧菜单中,选择安全性,然后选择证书

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

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

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

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

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

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

安全和身份

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

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