服务器身份验证 - AWS IoT Core

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

服务器身份验证

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

当您的设备或其他客户端TLS与某台设备建立连接时 AWS IoT Core 端点, 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 的所有后续调用将返回同一终端节点。

注意

要在中查看您的iot:Data-ATS终端节点 AWS IoT Core 控制台,选择 “设置”。控制台仅显示 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 证书进行交叉签名。全新 AWS IoT Core 地区,从 2018 年 5 月 9 日发布开始 AWS IoT Core 在亚太地区(孟买)区域,仅提供ATS证书。

VeriSign 终端节点(旧版)

服务器身份验证指南

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

注意

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

注意

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