服务器身份验证 - AWS IoT Core

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

服务器身份验证

当您的设备或其他客户端尝试连接时 AWS IoT Core, AWS IoT Core 服务器将发送一个 X.509 证书,您的设备将使用该证书对服务器进行身份验证。身份验证是通过验证 X.509 证书链在TLS层上进行的。这与您访问时浏览器使用的方法相同HTTPSURL。如果要使用您自己的证书颁发机构提供的证书,请参阅管理 CA 证书

当您的设备或其他客户端与 AWS IoT Core 终端节点建立TLS连接时,会 AWS IoT Core 显示一个证书链,设备使用该证书链来验证它们是否正在 AWS IoT Core 与之通信,而不是其他服务器模仿 AWS IoT Core。呈现的链取决于设备连接的端点类型和客户端在握手期间 AWS IoT Core 协商的密码套件的组合。TLS

端点类型

AWS IoT Core 支持iot:Data-ATSiot:Data-ATS终端节点出示由亚马逊信任服务 CA 签署的服务器证书。

ATS端点提供的证书由 Starfield 交叉签名。某些TLS客户端实现需要验证信任根,并要求在客户端的信任存储中安装 Starfield CA 证书。

警告

不建议使用对整个证书(包括颁发者名称等)进行哈希处理的证书锁定方法,因为这会导致证书验证失败,因为我们提供的证书由 Starfield 交叉签名并且具有不同的ATS颁发者名称。

重要

使用 iot:Data-ATS 端点。赛门铁克和威瑞信证书已被弃用,不再受其支持。 AWS IoT Core

您可以使用describe-endpoint命令来创建您的ATS终端节点。

aws iot describe-endpoint --endpoint-type iot:Data-ATS

describe-endpoint 命令采用以下格式返回终端节点。

account-specific-prefix.iot.your-region.amazonaws.com
注意

首次调用 describe-endpoint 时,会创建一个终端节点。对 describe-endpoint 的所有后续调用将返回同一终端节点。

注意

要在 AWS IoT Core 控制台中查看您的iot:Data-ATS终端节点,请选择设置。控制台仅显示 iot:Data-ATS 终端节点。

IotDataPlaneClient使用 AWS SDK适用于 Java 的

要创建使用 iot:Data-ATS 端点的 IotDataPlaneClient,您必须执行以下操作。

  • 使用创建iot:Data-ATS终端节点DescribeEndpointAPI。

  • 在创建 IotDataPlaneClient 时指定该终端节点。

以下示例执行这两项操作。

public void setup() throws Exception { IotClient client = IotClient.builder().credentialsProvider(CREDENTIALS_PROVIDER_CHAIN).region(Region.US_EAST_1).build(); String endpoint = client.describeEndpoint(r -> r.endpointType("iot:Data-ATS")).endpointAddress(); iot = IotDataPlaneClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .endpointOverride(URI.create("https://" + endpoint)) .region(Region.US_EAST_1) .build(); }

用于服务器身份验证的 CA 证书

根据您使用的数据端点类型和协商的密码套件, AWS IoT Core 服务器身份验证证书由以下根 CA 证书之一签名:

Amazon Trust Services 终端节点(首选)

注意

您可能需要右键单击这些链接,然后选择 Save link as... (将链接另存为...) 将这些证书另存为文件。

  • RSA2048 位密钥:Amazon Root CA 1.

  • RSA4096 位密钥:Amazon Root CA 2。 保留供将来使用。

  • ECC256 位密钥:Amazon Root CA 3.

  • ECC384 位密钥:Amazon Root CA 4。 保留供将来使用。

这些证书都由 Starfield 根 CA 证书进行交叉签名。自 2018 年 5 月 9 日亚太 AWS IoT Core 地区(孟买)地区推出以来,所有新区域仅提供ATS证书。 AWS IoT Core

VeriSign 终端节点(旧版)

服务器身份验证指南

有很多变量会影响设备验证 AWS IoT Core 服务器身份验证证书的能力。例如,设备的内存可能太有限,无法容纳所有可能的根 CA 证书,或者设备可能会实施非标准的证书验证方法。由于这些原因,我们建议遵循以下准则:

注意

CA 证书具有一个过期日期,在该日期后,这些证书将无法用于验证服务器的证书。可能必须在 CA 证书的过期日期前替换这些证书。请确保可以更新所有设备或客户端上的根 CA 证书,以确保持续的连接并保持最新的安全最佳实践。

注意

在设备代码 AWS IoT Core 中连接时,请将证书传递到API您用来连接的。API你使用的会有所不同SDK。有关更多信息,请参阅AWS IoT Core 设备SDKs