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 账户之间移动设备。请参阅在多账户注册中使用多个 Amazon Web Services 账户 X.509 客户端证书了解更多信息。

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

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

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

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

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

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

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

使用 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 的证书的更多信息,请参阅创建Amazon IoT客户证书。有关使用您自己的 X.509 证书的更多信息,请参阅 创建您自己的客户端证书

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

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

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

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

多账户注册能够在同一区域或不同区域的 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 (RSSASSA-PSS)

  • SHA384WITHRSAANDMGF1 (RSSASSA-PSS)

  • SHA512WITHRSAANDMGF1 (RSSASSA-PSS)

  • DSA_WITH_ SHA256

  • ECDSA-with-SHA256

  • ECDSA-with-SHA384

  • ECDSA-with-SHA512

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

注意

证书签名请求(CSR)必须包含公有密钥。该密钥可以是长度至少为 2048 位的 RSA 密钥,或者是来自 NIST P-256、NIST P-384 或 NIST P-521 曲线的 ECC 密钥。有关更多信息,请参阅 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
密钥大小至少为 2048 位的 RSA-PSS 全部 TLS 1.2
密钥大小至少为 2048 位的 RSA-PSS 全部 TLS 1.3

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

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