

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

# 使用 MQTT 代理程式將用戶端裝置連接至 AWS IoT Greengrass Core 裝置
<a name="connecting-to-mqtt"></a>

當您在 AWS IoT Greengrass Core 裝置上使用 MQTT 代理程式時，裝置會使用裝置特有*的核心裝置憑證授權機構 (CA)*，向代理程式發出憑證，以便與用戶端進行交互 TLS 連線。

AWS IoT Greengrass 會自動產生核心裝置 CA，您也可以提供自己的 CA。連接[用戶端裝置身分驗證](client-device-auth-component.md)元件 AWS IoT Greengrass 時，核心裝置 CA 會向 註冊。自動產生的核心裝置 CA 為持久性，只要已設定用戶端裝置驗證元件，裝置就會繼續使用相同的 CA。

當 MQTT 代理程式啟動時，它會請求憑證。用戶端裝置身分驗證元件會使用核心裝置 CA 發行 X.509 憑證。代理程式啟動、憑證過期或 IP 地址等連線資訊變更時，會輪換憑證。如需詳細資訊，請參閱[本機 MQTT 代理程式上的憑證輪換](device-auth.md#mqtt-certificate-expiration)。

若要將用戶端連線至 MQTT 代理程式，您需要下列項目：
+ 用戶端裝置必須具有 AWS IoT Greengrass Core 裝置 CA。您可以透過雲端探索或手動提供 CA 來取得此 CA。如需詳細資訊，請參閱[使用您自己的憑證授權單位](#use-your-own-CA)。
+ 核心裝置的完整網域名稱 (FQDN) 或 IP 地址必須存在於核心裝置 CA 發行的代理程式憑證中。您可以使用 [IP 偵測器](ip-detector-component.md)元件或手動設定 IP 地址來確保這一點。如需詳細資訊，請參閱[管理核心裝置端點](manage-core-device-endpoints.md)。
+ 用戶端裝置身分驗證元件必須授予用戶端裝置連線至 Greengrass 核心裝置的許可。如需詳細資訊，請參閱[用戶端裝置身分驗證](client-device-auth-component.md)。

## 使用您自己的憑證授權單位
<a name="use-your-own-CA"></a>

如果您的用戶端裝置無法存取雲端來探索您的核心裝置，您可以提供*核心裝置憑證授權單位 (CA)*。您的 Greengrass 核心裝置使用核心裝置 CA 為您的 MQTT 代理程式發行憑證。設定核心裝置並以其 CA 佈建用戶端裝置後，您的用戶端裝置就可以連線至端點，並使用核心裝置 CA （已提供 CA 或自動產生） 驗證 TLS 交握。

若要設定[用戶端裝置身分驗證](client-device-auth-component.md)元件以使用您的核心裝置 CA，請在部署元件時設定`certificateAuthority`組態參數。您必須在組態期間提供下列詳細資訊：
+ 核心裝置 CA 憑證的位置。
+ 核心裝置 CA 憑證的私有金鑰。
+ （選用） 如果核心裝置 CA 是中繼 CA，則為根憑證的憑證鏈結。

如果您提供核心裝置 CA， 會將 CA AWS IoT Greengrass 註冊至雲端。

您可以將憑證存放在硬體安全模組或檔案系統上。下列範例顯示使用 HSM/TPM 存放的中繼 CA `certificateAuthority`組態。請注意，憑證鏈只能存放在磁碟上。

```
  "certificateAuthority": {
      "certificateUri": "pkcs11:object=CustomerIntermediateCA;type=cert",
      "privateKeyUri": "pkcs11:object=CustomerIntermediateCA;type=private"
      "certificateChainUri": "file:///home/ec2-user/creds/certificateChain.pem",
    }
```

在此範例中，`certificateAuthority`組態參數會將用戶端裝置身分驗證元件設定為使用檔案系統的中繼 CA：

```
  "certificateAuthority": {
      "certificateUri": "file:///home/ec2-user/creds/intermediateCA.pem",
      "privateKeyUri": "file:///home/ec2-user/creds/intermediateCA.privateKey.pem",
      "certificateChainUri": "file:///home/ec2-user/creds/certificateChain.pem",
    }
```

若要將裝置連接到您的 AWS IoT Greengrass Core 裝置，請執行下列動作：

1. 使用組織的根 CA 為 Greengrass 核心裝置建立中繼憑證授權機構 (CA)。我們建議您使用中繼 CA 做為安全最佳實務。

1. 將中繼 CA 憑證、私有金鑰和憑證鏈提供給 Greengrass 核心裝置的根 CA。如需詳細資訊，請參閱[用戶端裝置身分驗證](client-device-auth-component.md)。中繼 CA 會成為 Greengrass 核心裝置的核心裝置 CA，而裝置會向該 CA 註冊 AWS IoT Greengrass。

1. 將用戶端裝置註冊為 AWS IoT 物件。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[建立物件](https://docs.aws.amazon.com/iot/latest/developerguide/create-iot-resources.html#create-aws-thing)。將私有金鑰、公有金鑰、裝置憑證和根 CA 憑證新增至您的用戶端裝置。如何新增資訊取決於您的裝置和軟體。

設定裝置後，您可以使用憑證和公有金鑰鏈連線到 Greengrass 核心裝置。您的軟體負責尋找核心裝置端點。您可以手動設定核心裝置的端點。如需詳細資訊，請參閱[手動管理端點](manage-core-device-endpoints.md#manually-manage-endpoints)。