View a markdown version of this page

诊断连接问题 - AWS IoT Core

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

诊断连接问题

帮助我们改进此主题

成功连接 AWS IoT 需要:

  • 有效的连接

  • 有效且已激活的证书

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

Connection

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

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

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

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

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

身份验证

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

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

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

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

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

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

  2. AWS IoT 检查所使用的证书是否已在 AWS IoT 账户中注册以及是否已激活。

  3. 当设备尝试在中 AWS IoT执行任何操作(例如订阅或发布消息)时,将检查其用于连接的证书所附的策略,以确认该设备是否有权执行该操作。

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

请使用 OpenSSL s_client 命令测试与 AWS 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"
  • 查看中的证书 AWS IoT 控制台

    在 AWS IoT 控制台,在左侧菜单中,选择安全,然后选择证书。

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

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

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

Authorization

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

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

确保在您用于调用的证书上附加了政策 AWS IoT。默认情况下,所有 publish/subscribe 操作都被拒绝。

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

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

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

确保在您用于调用的证书上附加了政策 AWS IoT。默认情况下,所有 publish/subscribe 操作都被拒绝。

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

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

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

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

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

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

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

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

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

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

安全和身份

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

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