View a markdown version of this page

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

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

X.509 客户证书

X.509 证书提供了 Amazon IoT 对客户端和设备连接进行身份验证的功能。客户端必须先注册客户证书, Amazon IoT 然后才能与之通信 Amazon IoT。一个客户端证书可以在同一个区域的多个 Amazon Web Services 账户 s 中注册 Amazon Web Services 区域 ,以便于在同一区域的设备 Amazon Web Services 账户之间移动设备。请参阅在多个中使用 X.509 客户端证书 Amazon Web Services 账户 s 使用多账号注册了解更多信息。

我们建议为每个设备或客户端提供一个唯一的证书,以便进行精细的客户端管理操作,包括证书吊销。设备和客户端还必须支持证书轮换和更换,以帮助确保在证书过期时平稳运行。

有关使用 X.509 证书支持多个设备的信息,请参阅设备预调配查看 Amazon IoT 支持的不同证书管理和配置选项。

Amazon IoT 支持以下类型的 X.509 客户端证书:
  • X.509 由生成的证书 Amazon IoT

  • X.509 由注册的 CA 签署的证书 Amazon IoT。

  • X.509 由未注册的 CA 签署的证书 Amazon IoT。

本节介绍如何在中管理 X.509 证书 Amazon IoT。您可以使用 Amazon IoT 控制台或 Amazon CLI 执行以下证书操作:

有关执行这些操作的 Amazon CLI 命令的更多信息,请参阅 Amazon IoT CLI 参考

使用 X.509 客户证书

X.509 证书对与的客户端和设备连接进行身份验证 Amazon IoT。 X.509与其他识别和身份验证机制相比,证书具有多种优点。 X.509 证书允许将非对称密钥用于设备。例如,您可以将私钥烧录到设备上的安全存储中,这样敏感的加密材料就不会离开设备。 X.509与其他方案(例如用户名和密码或持有者令牌)相比,证书提供了更强的客户端身份验证,因为私钥永远不会离开设备。

Amazon IoT 使用 TLS 协议的客户端身份验证模式对客户端证书进行身份验证。TLS 支持适用于多种编程语言和操作系统并且通常用于为数据加密。在 TLS 客户端身份验证中, Amazon IoT 请求 X.509 客户端证书并根据证书注册表验证证书的状态。 Amazon Web Services 账户 然后,它要求客户提供与证书中包含的公钥相对应的私钥的所有权证明。 Amazon IoT 要求客户端向传输层安全 (TLS) 协议发送服务器名称指示 (SNI) 扩展。有关配置 SNI 扩展的更多信息,请参阅 运输安全 Amazon IoT Core

为了便于客户机安全一致地连接到 Amazon IoT 核心, X.509客户端证书必须具备以下内容:

您可以创建使用 Amazon Root CA 的客户端证书,并可以使用您自己的由其它证书颁发机构(CA)签发的客户端证书。有关使用 Amazon IoT 控制台创建使用 Amazon 根 CA 的证书的更多信息,请参阅Create Amazon IoT 客户端证书。有关使用自己的 X.509 证书的更多信息,请参阅创建您自己的客户端证书

由 CA 证书签名的证书到期的日期和时间是在创建证书时设置的。 X.509 由生成的证书将于 2049 年 12 月 31 日世界标准时间(20 T23:59:59Z 49-12-31)午夜 Amazon IoT 到期。

Amazon IoT Device Defender 可以对您的 Amazon Web Services 账户 和支持常见物联网安全最佳实践的设备进行审计。这包括管理由您的 CA 或 Amazon 根 CA 签署的 X.509 证书的到期日期。有关管理证书的到期日期的更多信息,请参阅设备证书即将到期CA 证书即将到期

在官方 Amazon IoT 博客上,如何使用管理物联网设备证书轮换,深入探讨了设备证书轮换的管理和安全最佳实践 Amazon IoT。

在多个中使用 X.509 客户端证书 Amazon Web Services 账户 s 使用多账号注册

Multi-account 通过注册,可以在同一地区或不同区域的设备之间移动设备。 Amazon Web Services 账户您可以在预生产账户中注册、测试和配置设备,然后在生产账户中注册并使用相同的设备和设备证书。您也可以在设备上注册客户端证书,或者在没有注册的 CA 的情况下注册设备证书 Amazon IoT。有关更多信息,请参阅 Register a client certificate signed by an unregistered CA (CLI)(注册由未注册的 CA 签发的客户端证书(CLI))。

注意

用于多账户注册的证书在 iot:Data-ATSiot:Data(旧式)、iot:Jobsiot:CredentialProvider 端点类型中获得支持。有关 Amazon IoT 设备端点的更多信息,请参阅Amazon IoT 设备数据和服务端点

使用多账户注册的设备必须将服务器名称指示 (SNI) 扩展发送到传输层安全 (TLS) 协议,并在连接时在host_name字段中提供完整的端点地址。 Amazon IoT Amazon IoT 使用中的终端节点地址将连接路由host_name到正确的 Amazon IoT 帐户。未发送 host_name 中的有效端点地址的现有设备将继续工作,但它们将无法使用需要此信息的特征。有关 SNI 扩展以及如何识别 host_name 字段的端点地址的更多信息,请参阅。运输安全 Amazon IoT Core

使用多账户注册
  1. 您可以向 CA 注册设备证书。您可以在 SNI_ONLY 模式下在多个账户中注册签名 CA,并使用该 CA 向多个账户注册相同的客户端证书。有关更多信息,请参阅 在 SNI_ONLY 模式下注册 CA 证书(CLI)- 建议

  2. 您可以在没有 CA 的情况下注册设备证书。请参阅注册由未注册的 CA(CLI)签发的客户端证书。注册 CA 是可选的。您无需注册签署设备证书的 CA Amazon IoT。

支持的证书签名算法 Amazon IoT

Amazon IoT 支持以下证书签名算法:

  • SHA256WITHRSA

  • SHA384WITHRSA

  • SHA512WITHRSA

  • SHA256WITHRSAANDMGF1 (RSASSA-PSS)

  • SHA384WITHRSAANDMGF1 (RSASSA-PSS)

  • SHA512WITHRSAANDMGF1 (RSASSA-PSS)

  • DSA_WITH_SHA256

  • ECDSA-WITH-SHA256

  • ECDSA-WITH-SHA384

  • ECDSA-WITH-SHA512

有关证书身份验证和安全性的更多信息,请参阅设备证书密钥质量

注意

证书签名请求(CSR)必须包含公有密钥。密钥可以是长度至少为 2,048 位的 RSA 密钥,也可以是来自 NIST P-256、NIST 或 NIST 曲线的 ECC 密钥。 P-384 P-521 有关更多信息,请参阅 CreateCertificateFromCsr API 参考指南 中的 Amazon IoT

支持的密钥算法 Amazon IoT

下表显示了如何支持密钥算法:

密钥算法 证书签名算法 TLS 版本 是否支持? 是或否
密钥大小至少为 2048 位的 RSA 全部 TLS 1.2 TLS 1.3
ECC NIST P-256/P-384/P-521 全部 TLS 1.2 TLS 1.3
RSA-PSS 密钥大小至少为 2048 位 全部 TLS 1.2
RSA-PSS 密钥大小至少为 2048 位 全部 TLS 1.3

要使用创建证书 CreateCertificateFromCSR,您可以使用支持的密钥算法为您的 CSR 生成公钥。要使用RegisterCertificate或注册自己的证书 RegisterCertificateWithoutCA,您可以使用支持的密钥算法为证书生成公钥。

有关更多信息,请参阅安全策略