本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
服务器身份验证
当您的设备或其他客户端尝试连接时 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-ATS
。 iot:Data-ATS
终端节点出示由亚马逊信任服务
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 证书
VeriSign 终端节点(旧版)
-
RSA2048 位密钥:第 3 VeriSign 类公共主要 G5 根
CA 证书
服务器身份验证指南
有许多变量会影响设备验证的能力 AWS 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
到你的信任商店。 -
如果您在执行上述步骤后仍然遇到问题,请联系 AWS 开发人员 Suppor
t。
注意
CA 证书具有一个过期日期,在该日期后,这些证书将无法用于验证服务器的证书。可能必须在 CA 证书的过期日期前替换这些证书。请确保可以更新所有设备或客户端上的根 CA 证书,以确保持续的连接并保持最新的安全最佳实践。
注意
连接时 AWS IoT Core 在您的设备代码中,将证书传递到API您用于连接的。API你使用的会有所不同SDK。有关更多信息,请参阅 。AWS IoT Core 设备SDKs。