本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以設定 CA 憑證,以啟用其簽署的用戶端憑證,以便在用戶端第一次連線時 AWS IoT 自動向 註冊 AWS IoT。
若要在用戶端 AWS IoT 第一次連線至 時註冊用戶端憑證,您必須啟用 CA 憑證以進行自動註冊,並設定用戶端提供所需憑證的第一個連線。
設定憑證授權機構憑證以支援自動註冊 (主控台)
使用 AWS IoT 主控台設定 CA 憑證以支援自動用戶端憑證註冊
-
登入 AWS 管理主控台並開啟 AWS IoT 主控台
。 -
請在左側導覽窗格中,選擇 Secure (安全)、CAs (CA)。
-
在憑證授權單位清單中,尋找您要啟用自動註冊的憑證授權單位,然後使用省略符號圖示開啟選項選單。
-
在選項選單上,選擇 Enable auto-registration (啟用自動註冊)。
注意
自動註冊狀態不會顯示在憑證授權單位清單中。若要查看憑證授權機構的自動註冊狀態,您必須開啟憑證授權機構的 Details (詳細資料) 頁面。
設定憑證授權機構憑證以支援自動註冊 (CLI)
如果您已向 註冊 CA 憑證 AWS IoT,請使用 update-ca-certificateautoRegistrationStatus
將 CA 憑證設為 ENABLE
。
aws iot update-ca-certificate \ --certificate-id
caCertificateId
\ --new-auto-registration-status ENABLE
如果您想要在註冊憑證授權機構憑證時啟用 autoRegistrationStatus
,請使用 register-ca-certificate
aws iot register-ca-certificate \ --allow-auto-registration \ --ca-certificate file://
root_CA_cert_filename.pem
\ --verification-cert file://verification_cert_filename.pem
使用 describe-ca-certificate
設定用戶端的首次連線進行自動註冊
當用戶端 AWS IoT 第一次嘗試連線至 時,在 Transport Layer Security (TLS) 交握期間,用戶端上必須存在由 CA 憑證簽署的用戶端憑證。
當用戶端連線到 時 AWS IoT,請使用您在建立用戶端憑證或建立您自己的用戶端憑證中建立的 AWS IoT用戶端憑證。 會將 CA 憑證 AWS IoT 識別為已註冊的 CA 憑證、註冊用戶端憑證,並將其狀態設定為 PENDING_ACTIVATION
。 https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html這代表系統會自動註冊該用戶端憑證,並準備啟用。用戶端憑證的狀態必須先是 ACTIVE
才能用來連線 AWS IoT。請參閱 啟用或停用用戶端憑證 以了解啟用用戶端憑證的相關資訊。
注意
您可以使用 AWS IoT Core just-in-time(JITR) 功能佈建裝置,而不必在裝置的第一個連線上傳送整個信任鏈 AWS IoT Core。雖不要求顯示憑證授權機構憑證,但需要裝置在連線時傳送伺服器名稱指示 (SNI)
當 AWS IoT 自動註冊憑證,或用戶端呈現 PENDING_ACTIVATION
狀態的憑證時, 會將訊息 AWS IoT 發佈至下列 MQTT 主題:
$aws/events/certificates/registered/
caCertificateId
為發行該用戶端憑證的憑證授權機構憑證 ID。caCertificateId
發佈至此主題的訊息具有以下結構:
{
"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/
,並使用 clientid() 函數來擷取用戶端 ID。然後,規則會將用戶端 ID 附加到 JITR 承載。如需規則 clientid() 函數的詳細資訊,請參閱 clientid()。caCertificateID
如需如何建立會接聽 $aws/events/certificates/registered/
主題並執行這些動作之 Lambda 規則的詳細資訊,請參閱 AWS IoT上用戶端憑證的即時註冊caCertificateID
如果在自動註冊用戶端憑證期間發生任何錯誤或例外狀況, 會在 CloudWatch Logs AWS IoT 中將事件或訊息傳送到您的日誌。如需為您帳戶設定記錄的詳細資訊,請參閱 Amazon CloudWatch 文件。