

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

# 在客户端连接到注册时 AWS IoT just-in-time 注册客户端证书 (JITR)
<a name="auto-register-device-cert"></a>

您可以将 CA 证书配置为启用已签名的客户端证书，以便在客户端首次连接时 AWS IoT 自动注册该证书 AWS IoT。

要在客户端首次连接时注册客户端证书，必须启用 CA 证书进行自动注册，并将客户端的第一个连接配置为提供所需的证书。 AWS IoT 

## 配置 CA 证书以支持自动注册（控制台）
<a name="enable-auto-registration-console"></a>

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

1. 登录 AWS 管理控制台并打开[AWS IoT 控制台](https://console.aws.amazon.com/iot/home)。

1. 在左侧导航窗格中，选择 “**安全**”，选择**CAs**。

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

1. 在选项菜单上，选择**启用自动注册**。

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

## 配置 CA 证书以支持自动注册（CLI）
<a name="enable-auto-registration-cli"></a>

如果您已经向注册了 CA 证书 AWS IoT，请使用[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html)命令将 CA 证书设置为`autoRegistrationStatus``ENABLE`。

```
aws iot update-ca-certificate \
--certificate-id caCertificateId \
--new-auto-registration-status ENABLE
```

如果您要在注册 CA 证书时启用 `autoRegistrationStatus`，请使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html) 命令。

```
aws iot register-ca-certificate \
--allow-auto-registration  \
--ca-certificate file://root_CA_cert_filename.pem \
--verification-cert file://verification_cert_filename.pem
```

使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html) 命令查看 CA 证书的状态。

## 配置客户端的首次连接以进行自动注册
<a name="configure-auto-reg-first-connect"></a>

当客户端首次尝试 AWS IoT 连接时，在传输层安全 (TLS) 握手期间，由您的 CA 证书签名的客户端证书必须存在于客户端上。

当客户端连接到时 AWS IoT，使用您在创建客户端证书或[创建自己的 AWS IoT 客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-create.html)[中创建的客户端证书](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html)。 AWS IoT 将 CA 证书识别为已注册的 CA 证书，注册客户端证书，并将其状态设置为`PENDING_ACTIVATION`。这意味着，已自动注册客户端证书，该证书正在等待激活。客户端证书的状态必须为 `ACTIVE`，然后才能将其用于连接到 AWS IoT。有关激活客户端证书的信息，请参阅 [激活或停用客户端证书](activate-or-deactivate-device-cert.md)。

**注意**  
您可以使用 AWS IoT Core just-in-time注册 (JITR) 功能配置设备，而不必在设备首次连接时发送整个信任链。 AWS IoT Core可以出示 CA 证书，但连接时设备需要发送[服务器名称指示（SNI）](https://datatracker.ietf.org/doc/html/rfc3546#section-3.1)扩展。

当 AWS IoT 自动注册证书或客户端提供`PENDING_ACTIVATION`状态为证书时，会向以下 MQTT 主题 AWS IoT 发布一条消息：

`$aws/events/certificates/registered/caCertificateId`

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

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

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

您可以创建一项规则，以侦听此主题并执行一些操作。我们建议您创建一项 Lambda 规则，以验证客户端证书不在证书吊销列表（CRL）中，激活该证书，创建策略并将其附加到证书中。该策略将确定客户端能够访问的资源。如果您创建的策略需要来自连接设备的客户端 ID，您可以使用规则的 clientid() 函数来检索客户端 ID。规则定义示例如下所示：

```
SELECT *,
   clientid() as clientid
from $aws/events/certificates/registered/caCertificateId
```

在此示例中，规则订阅 JITR 主题 `$aws/events/certificates/registered/caCertificateID` 并使用 clientid() 函数检索客户端 ID。然后规则将客户端 ID 附加到 JITR 有效载荷。有关规则 clientid() 函数的更多信息，请参阅 [clientid()](https://docs.aws.amazon.com//iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-clientid)。

有关如何创建监听`$aws/events/certificates/registered/caCertificateID`主题并执行这些操作的 Lambda 规则的更多信息，请参阅[just-in-time 注册客户证书](https://aws.amazon.com/blogs/iot/just-in-time-registration-of-device-certificates-on-aws-iot/)。 AWS IoT

如果在自动注册客户端证书的过程中出现任何错误或异常，则会在日志中 AWS IoT 将事件或消息发送到您的日 CloudWatch 志。有关为您的账户设置日志的更多信息，请参阅 [Amazon CloudWatch 文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/)。