本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
服务器身份验证
当您的设备或其他客户端尝试连接时 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-ATS
。 iot:Data-ATS
终端节点出示由亚马逊信任服务
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 证书
VeriSign 终端节点(旧版)
-
RSA2048 位密钥:第 3 VeriSign 类公共主要 G5 根
CA 证书
服务器身份验证指南
有很多变量会影响设备验证 Amazon IoT Core 服务器身份验证证书的能力。例如,设备的内存可能太有限,无法容纳所有可能的根 CA 证书,或者设备可能会实施非标准的证书验证方法。由于这些原因,我们建议遵循以下准则:
-
我们建议您使用ATS终端节点并安装所有支持的终端节点 Amazon Root CA 证书。
-
如果您无法在设备上存储所有这些证书,并且您的设备不使用ECC基于身份的验证,则可以省略 Amazon Root CA 3
和 Amazon Root CA 4 ECC证书。如果您的设备未实现RSA基于证书的验证,则可以省略 Amazon Root CA 1 和 Amazon Root CA 2 RSA证书。您可能需要右键单击这些链接,然后选择 Save link as... (将链接另存为...) 将这些证书另存为文件。 -
如果您在连接ATS终端节点时遇到服务器证书验证问题,请尝试将相关的交叉签名 Amazon Root CA 证书添加到您的信任存储中。您可能需要右键单击这些链接,然后选择 Save link as... (将链接另存为...) 将这些证书另存为文件。
-
如果您遇到服务器证书验证问题,则您的设备可能需要明确信任根 CA。尝试添加 Starfield Root CA Certificate
到你的信任商店。 -
如果您在执行上述步骤后仍遇到问题,请联系Amazon 开发人员支持
。
注意
CA 证书具有一个过期日期,在该日期后,这些证书将无法用于验证服务器的证书。可能必须在 CA 证书的过期日期前替换这些证书。请确保可以更新所有设备或客户端上的根 CA 证书,以确保持续的连接并保持最新的安全最佳实践。
注意
在设备代码 Amazon IoT Core 中连接时,请将证书传递到API您用来连接的。API你使用的会有所不同SDK。有关更多信息,请参阅Amazon IoT Core 设备SDKs。