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

诊断连接问题

成功连接到 Amazon IoT 需要:

  • 有效的连接

  • 有效且已激活的证书

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

Connection

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

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

Authentication

设备必须经过身份验证以连接到 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(操作)菜单来更改。

Authorization

Amazon IoT 资源使用 Amazon IoT Core 策略 授权这些资源执行操作。对于要授权的操作,指定的 Amazon IoT 资源必须附加一个策略文档,该文档将授予执行该操作的权限。

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

请确保当前有策略附加到您用于调用 Amazon IoT 的证书。预设情况下,所有的发布/订阅操作均将被拒绝。

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

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

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

请确保当前有策略附加到您用于调用 Amazon IoT 的证书。预设情况下,所有的发布/订阅操作均将被拒绝。

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

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

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

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

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

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

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

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

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

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