在客户端连接到 AWS IoT 时注册客户端证书(即时注册) - AWS IoT
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在客户端连接到 AWS IoT 时注册客户端证书(即时注册)

您可以配置 CA 证书,以便在客户端首次连接到 AWS IoT 时,允许使用它签发的客户端证书自动注册到 AWS IoT。

要在客户端首次连接到 AWS IoT 时注册客户端证书,您必须启用 CA 证书进行自动注册,并配置客户端在首次连接时提供所需的证书。

配置 CA 证书以支持自动注册(控制台)

使用 AWS IoT 控制台配置 CA 证书以支持自动客户端证书注册

  1. 登录到 AWS 管理控制台,然后打开 AWS IoT 控制台

  2. 在左侧的导航窗格中,依次选择安全CA

  3. 在证书颁发机构列表中,找到要启用自动注册的颁发机构,然后使用省略号图标打开选项菜单。

  4. 在选项菜单上,选择启用自动注册

注意

证书颁发机构列表中不显示自动注册状态。要查看证书颁发机构的自动注册状态,您必须打开证书颁发机构的详细信息页面。

配置 CA 证书以支持自动注册 (CLI)

如果您已将 CA 证书注册到 AWS IoT,请使用 update-ca-certificate 命令将 CA 证书的 autoRegistrationStatus 设置为 ENABLE

aws iot update-ca-certificate \ --certificate-idcaCertificateId \ --new-auto-registration-status ENABLE

如果您要在注册 CA 证书时启用 autoRegistrationStatus,请使用 register-ca-certificate 命令。

aws iot register-ca-certificate \ --allow-auto-registration \ --ca-certificate file://root_CA_pem_filename \ --verification-cert file://verification_cert_pem_filename

使用 describe-ca-certificate 命令查看 CA 证书的状态。

配置客户端的首次连接以进行自动注册

当客户端首次尝试连接到 AWS IoT 时,作为 TLS 握手的一部分,它必须提供一个文件,其中包含已注册的 CA 证书和由 CA 证书签发的客户端证书。您可以如下所示使用命令来合并这两个文件:

cat device_cert_filename ca_certificate_pem_filename combined_filename

在客户端连接到 AWS IoT 时,将 combined_filename 文件用作证书文件。AWS IoT 会将 CA 证书识别为已注册的 CA 证书,注册客户端证书并将其状态设置为 PENDING_ACTIVATION。这意味着,已自动注册客户端证书,该证书正在等待激活。客户端证书的状态必须为 ACTIVE,然后才能将其用于连接到 AWS IoT。

当 AWS IoT 自动注册证书时或者当客户端提供处于 PENDING_ACTIVATION 状态的证书时,AWS IoT 将向以下 MQTT 主题发布消息:

$aws/events/certificates/registered/caCertificateId

其中 caCertificateId 是颁发客户端证书的 CA 证书的 ID。

发布到该主题的消息具有以下结构:

{ "certificateId": "certificateId", "caCertificateId": "caCertificateId", "timestamp": timestamp, "certificateStatus": "PENDING_ACTIVATION", "awsAccountId": "awsAccountId", "certificateRegistrationTimestamp": "certificateRegistrationTimestamp" }

您可以创建一项规则,以侦听此主题并执行一些操作。我们建议您创建一项 Lambda 规则,以验证客户端证书不在证书吊销列表 (CRL) 中,激活该证书,创建策略并将其附加到证书中。该策略将确定客户端能够访问的资源。有关如何创建可侦听 $aws/events/certificates/registered/caCertificateID 主题并执行这些操作的 Lambda 规则的更多信息,请参阅 AWS IoT 上的客户端证书即时注册

如果在自动注册客户端证书期间发生任何错误或异常,AWS IoT 将向您的 CloudWatch Logs 日志发送相关事件或消息。有关如何为您的账户设置日志的更多信息,请参阅 Amazon CloudWatch 文档