服务器身份验证 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

服务器身份验证

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

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

端点类型

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

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

警告

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

重要

使用iot:Data-ATS端点。赛门铁克和威瑞信证书已被弃用,不再受其支持。 Amazon 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 的所有后续调用将返回同一终端节点。

注意

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

IotDataPlaneClient使用 Amazon 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 证书

根据您使用的数据端点类型和协商的密码套件, Amazon 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 日亚太 Amazon IoT Core 地区(孟买)地区推出以来,所有新区域仅提供ATS证书。 Amazon IoT Core

VeriSign 终端节点(旧版)

服务器身份验证指南

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

注意

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

注意

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