

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# X.509 用戶端憑證
<a name="x509-client-certs"></a>

X.509 憑證 AWS IoT 提供驗證用戶端和裝置連線的能力。用戶端憑證必須先向 註冊 AWS IoT ，用戶端才能與 通訊 AWS IoT。用戶端憑證可以在相同 中的多個 AWS 帳戶中註冊 AWS 區域 ，以便在同一區域中的 AWS 帳戶之間移動裝置。如需詳細資訊，請參閱 [在具有多帳戶註冊的多個 AWS 帳戶中使用 X.509 用戶端憑證](#multiple-account-cert)。

我們建議為每個裝置或用戶端提供唯一的憑證，藉此更精細地管理用戶端，包括憑證撤銷作業。裝置必須支援憑證的輪換和替代，以確保憑證過期時操作順暢。

如需使用 X.509 憑證支援數個裝置的詳細資訊，請參閱 [裝置佈建](iot-provision.md)，以檢閱 AWS IoT 支援的不同憑證管理和佈建選項。

**AWS IoT 支援這些類型的 X.509 用戶端憑證：**
+  產生的 X.509 憑證 AWS IoT
+  由向 註冊的 CA 簽署的 X.509 憑證 AWS IoT。
+  未註冊 AWS IoT且有 CA 簽署的 X.509 憑證。

本節說明如何在 AWS IoT中管理 X.509 憑證。您可以使用 AWS IoT 主控台或 AWS CLI 來執行這些憑證操作：
+ [建立 AWS IoT 用戶端憑證](device-certs-create.md)
+ [建立您自己的用戶端憑證](device-certs-your-own.md)
+ [註冊用戶端憑證](register-device-cert.md)
+ [啟用或停用用戶端憑證](activate-or-deactivate-device-cert.md)
+ [撤銷用戶端憑證](revoke-ca-cert.md)

如需執行這些操作之 AWS CLI 命令的詳細資訊，請參閱 [AWS IoT CLI 參考](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/index.html)。

## 使用 X.509 用戶端憑證
<a name="x509-client-cert-basics"></a>

X.509 憑證會驗證用戶端和裝置的連線 AWS IoT。相較於其他識別和身分驗證機制，X.509 憑證具備多種好處。X.509 憑證可讓裝置使用非對稱金鑰。例如，您可以將私密金鑰燒錄到裝置上的安全儲存空間，這樣敏感的密碼編譯資料永遠不會離開裝置。由於私有金鑰絕對不會離開裝置，因此 X.509 憑證提供更勝於其他機制 (例如使用者名稱和密碼或承載符記) 的強大用戶端身分驗證。

AWS IoT 會使用 TLS 通訊協定的用戶端身分驗證模式來驗證用戶端憑證。TLS 支援多種程式設計語言與作業系統，且普遍用於加密資料。在 TLS 用戶端身分驗證中， AWS IoT 會請求 X.509 用戶端憑證，並根據憑證的 AWS 帳戶 登錄檔驗證憑證的狀態。然後，它會向用戶端挑戰與憑證中包含的公有金鑰對應的私有金鑰的擁有權證明。 AWS IoT 要求用戶端將[伺服器名稱指示 (SNI) 延伸](https://tools.ietf.org/html/rfc3546#section-3.1)模組傳送至 Transport Layer Security (TLS) 通訊協定。如需設定 SNI 延伸模組的詳細資訊，請參閱 [中的傳輸安全性 AWS IoT Core](transport-security.md)。

為了促進安全且一致的用戶端連線至 AWS IoT 核心，X.509 用戶端憑證必須擁有下列項目：
+ 在 AWS IoT Core 中註冊。如需詳細資訊，請參閱[註冊用戶端憑證](register-device-cert.md)。
+ 狀態為 `ACTIVE`。如需詳細資訊，請參閱[啟用或停用用戶端憑證](activate-or-deactivate-device-cert.md)。
+ 尚未到達憑證過期日期。

您可以建立使用 Amazon 根 CA 的用戶端憑證，也可以使用由其他憑證授權單位 (CA) 簽署的自有用戶端憑證。如需使用 AWS IoT 主控台建立使用 Amazon 根 CA 的憑證的詳細資訊，請參閱 [建立 AWS IoT 用戶端憑證](device-certs-create.md)。如需使用您自己的 X.509 憑證的詳細資訊，請參閱 [建立您自己的用戶端憑證](device-certs-your-own.md)。

對於有憑證授權機構憑證簽署的憑證，其過期日期與時間會於憑證建立時設定。產生的 X.509 憑證會在 2049 年 12 月 31 日 UTC 午夜 (2049-12-31T23：59：59Z AWS IoT 過期）。

AWS IoT Device Defender 可以對支援常見 IoT 安全最佳實務的 AWS 帳戶 和裝置執行稽核。這包括管理您的 CA 或 Amazon 根 CA 簽署的 X.509 憑證過期日期。如需管理憑證過期日期的詳細資訊，請參閱[裝置憑證過期](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-device-cert-approaching-expiration.html)和 [CA 憑證過期](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-ca-cert-approaching-expiration.html)。

在官方 AWS IoT 部落格上，如需深入了解裝置憑證輪換的管理，以及安全最佳實務，請參閱[如何使用 管理 IoT 裝置憑證輪換 AWS IoT](https://aws.amazon.com/blogs/iot/how-to-manage-iot-device-certificate-rotation-using-aws-iot/)。

## 在具有多帳戶註冊的多個 AWS 帳戶中使用 X.509 用戶端憑證
<a name="multiple-account-cert"></a>

多帳戶註冊可讓您在相同區域或不同區域的 AWS 帳戶之間移動裝置。您可以在生產前帳戶中註冊、測試和設定裝置，然後在生產帳戶中註冊並使用相同的裝置和裝置憑證。您也可以在裝置上註冊用戶端憑證，或在沒有註冊 CA 的情況下註冊裝置憑證 AWS IoT。如需詳細資訊，請參閱[註冊未註冊 CA 所簽署的用戶端憑證 (CLI)](manual-cert-registration.md#manual-cert-registration-noca-cli)。

**注意**  
`iot:Data-ATS`、`iot:Data` (舊式)、`iot:Jobs` 及 `iot:CredentialProvider` 端點類型上支援用於多帳戶註冊的憑證。如需 AWS IoT 裝置端點的詳細資訊，請參閱 [AWS IoT 裝置資料和服務端點](iot-connect-devices.md#iot-connect-device-endpoints)。

使用多帳戶註冊的裝置必須將[伺服器名稱指示 (SNI) 延伸](https://tools.ietf.org/html/rfc3546#section-3.1)項目傳送至 Transport Layer Security (TLS) 通訊協定，並在連線至 時在 `host_name` 欄位中提供完整的端點地址 AWS IoT。 AWS IoT 會使用 中的端點地址，將連線`host_name`路由至正確的 AWS IoT 帳戶。未在 `host_name` 中傳送有效端點位址的現有裝置將繼續運作，但無法使用需要此資訊的功能。如需 SNI 延伸模組的詳細資訊，以及如何識別 `host_name` 欄位的端點位址，請參閱 [中的傳輸安全性 AWS IoT Core](transport-security.md)。

**使用多帳戶註冊**

1. 您可以在有 CA 的情況下註冊裝置憑證。您可以在 `SNI_ONLY` 模式下在多個帳戶中註冊簽署 CA，並使用該 CA 將相同的用戶端憑證註冊到多個帳戶。如需詳細資訊，請參閱[在 SNI\$1ONLY 模式下註冊 CA 憑證 (CLI) - 建議](manage-your-CA-certs.md#register-CA-cert-SNI-cli)。

1. 您可以在沒有 CA 的情況下註冊裝置憑證。請參閱 [註冊未註冊 CA 所簽署的用戶端憑證 (CLI)](manual-cert-registration.md#manual-cert-registration-noca-cli)。註冊 CA 非必須。您不需要註冊簽署裝置憑證的 CA AWS IoT。

## 支援的憑證簽署演算法 AWS IoT
<a name="x509-cert-algorithms"></a>

AWS IoT 支援下列憑證簽署演算法：
+ SHA256WITHRSA
+ SHA384WITHRSA
+ SHA512WITHRSA
+ SHA256WITHRSAANDMGF1 (RSASSA-PSS)
+ SHA384WITHRSAANDMGF1 (RSASSA-PSS)
+ SHA512WITHRSAANDMGF1 (RSASSA-PSS)
+ DSA\$1WITH\$1SHA256
+ ECDSA-WITH-SHA256
+ ECDSA-WITH-SHA384
+ ECDSA-WITH-SHA512

如需憑證身分驗證和安全性的詳細資訊，請參閱[裝置憑證金鑰品質](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-device-cert-key-quality.html)。

**注意**  
憑證簽署請求 (CSR) 必須包含公開金鑰。該金鑰可以是公開金鑰 (長度至少 2,048 位元) 或 ECC 金鑰 (至少 NIST P-256、NIST P-384 或 NIST P-521 曲線)。如需詳細資訊，請參閱《*AWS IoT API 參考指南*》中的 [CreateCertificateFromCsr](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCertificateFromCsr.html)。

## 支援的金鑰演算法 AWS IoT
<a name="x509-cert-key-algorithms"></a>

下表顯示如何支援金鑰演算法：


****  

| 金鑰演算法 | 憑證簽署演算法 | 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](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateCertificateFromCsr.html) 建立憑證，您可以使用支援的金鑰演算法來產生 CSR 的公有金鑰。若要使用 [RegisterCertificate](https://docs.aws.amazon.com//iot/latest/apireference/API_RegisterCertificate.html) 或 [RegisterCertificateWithoutCA](https://docs.aws.amazon.com//iot/latest/apireference/API_RegisterCertificateWithoutCA.html) 註冊您自己的憑證，您可以使用支援的金鑰演算法來產生憑證的公有金鑰。

如需詳細資訊，請參閱 [安全政策](https://docs.aws.amazon.com//iot/latest/developerguide/transport-security.html#tls-policy-table)。