建立和設定自訂網域 - AWS IoT Core

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

建立和設定自訂網域

網域組態可讓您指定自訂完整網域名稱 (FQDN) 來連線至 AWS IoT Core。使用自訂網域有許多好處:您可以為客戶公開您自己的網域或公司自己的網域;您可以輕鬆地將自己的網域變更為指向新的代理商;您可以支援多租戶服務,以便在相同範圍內為不同網域的客戶提供服務 AWS 帳戶;您可以管理自己的伺服器憑證詳細資料,例如用於簽署憑證的根憑證授權單位 (CA)、憑證鏈結和簽名的演算法、簽名鏈、生命週期和簽名的演算法證書。

使用自訂網域來設定網域組態的工作流程包含下列三個階段。

在憑證管理員註冊伺服器憑 AWS 證

使用自訂網域建立網域組態之前,您必須在 AWS Certificate Manager (ACM) 中註冊伺服器憑證鏈。您可以使用下列三種類型的伺服器憑證。

憑證需求

如需將憑證匯入至 ACM 的需求,請參閱匯入憑證的先決條件。除了這些需求之外, AWS IoT Core 會新增下列需求。

  • 分葉憑證必須包含具有伺服器驗證 (TLS 網頁伺服器驗證) 值的延伸金鑰使用方式 x509 v3 延伸模組。如果您從 ACM 請求憑證,則會自動新增此延伸。

  • 憑證鏈深度上限為 5 個憑證。

  • 憑證鏈大小上限為 16KB。

  • 支援的密碼編譯演算法和金鑰大小包括 RSA 2048 位元 (RSA) 和 256 位元。

針對多個網域使用一個憑證

如果您打算使用一個憑證來涵蓋多個子網域,請在通用名稱 (CN) 或主體替代名稱 (SAN) 欄位中使用萬用字元網域。例如,使用 *.iot.example.com 來涵蓋 dev.iot.example.com、qa.iot.example.com 和 prod.iot.example.com。每個 FQDN 都需要自己的網域組態,但多個網域組態可以使用相同的萬用字元值。CN 或 SAN 必須涵蓋您要用作自訂網域的 FQDN。如果 SAN 存在,CN 會遭忽略,且 SAN 必須涵蓋您要用作自訂網域的 FQDN。此涵蓋範圍可以是完全相符或萬用字元相符。驗證萬用字元憑證並向帳戶註冊後,該區域中的其他帳戶將無法建立與憑證重疊的自訂網域。

下列各節說明如何取得每種類型的憑證。每個憑證資源都需要向 ACM 註冊的 Amazon 資源名稱 (ARN),您在建立網域組態時會使用此 ARN。

ACM 產生的公有憑證

您可以使用 RequestCertificateAPI 為自訂網域產生公用憑證。當您以這種方式產生憑證時,ACM 會驗證您對自訂網域的擁有權。如需詳細資訊,請參閱《AWS Certificate Manager 使用者指南》中的請求公有憑證

由公有 CA 簽署的外部憑證

如果您已經擁有的伺服器憑證是由公用 CA (包含在 Mozilla 受信任的 ca 組合中的 CA) 所簽署的伺服器憑證,您可以使用 API 將憑證鏈直接匯入 ACM。ImportCertificate若要進一步了解此任務以及必要條件和憑證格式需求,請參閱匯入憑證

由私有 CA 簽署的外部憑證

如果您已經擁有由私有 CA 簽署或自我簽署的伺服器憑證,則可以使用憑證來建立您的網域組態,但也必須在 ACM 中建立額外的公有憑證,以驗證網域的擁有權。若要這麼做,請使用 ImportCertificateAPI 在 ACM 中註冊伺服器憑證鏈結。若要進一步了解此任務以及必要條件和憑證格式需求,請參閱匯入憑證

建立驗證憑證

將憑證匯入 ACM 之後,請使用 RequestCertificateAPI 為自訂網域產生公用憑證。當您以這種方式產生憑證時,ACM 會驗證您對自訂網域的擁有權。如需詳細資訊,請參閱請求公有憑證。建立網域組態時,請使用此公有憑證作為您的驗證憑證。

建立網域組態

您可以使用 CreateDomainConfigurationAPI 在自訂網域上建立可設定的端點。自訂網域的網域組態包含下列項目:

  • domainConfigurationName

    識別網域組態的使用者定義名稱。以 IoT: 開頭的網域組態名稱會保留給預設端點,且無法使用。此外,此值必須是您的唯一值 AWS 區域。

  • domainName

    您的裝置用來連線的 FQDN。 AWS IoT Core AWS IoT Core 利用伺服器名稱指示 (SNI) TLS 延伸來套用網域組態。裝置在連線並傳遞與網域組態中指定之網域名稱相同的伺服器名稱時,必須使用此延伸。

  • serverCertificateArns

    您在 ACM 註冊之伺服器憑證鏈結的 ARN。 AWS IoT Core 目前僅支援一個伺服器憑證。

  • validationCertificateArn

    您在 ACM 中產生之公有憑證的 ARN,此憑證用驗證自訂網域的擁有權。如果您使用公開簽署或 ACM 產生的伺服器憑證,則不需要此引數。

  • defaultAuthorizerName (optional)

    要在端點上使用的自訂授權方名稱。

  • allowAuthorizerOverride

    布林值,用來指定裝置是否可以在請求的 HTTP 標頭中指定不同的授權方來覆寫預設授權方。如果指定了 defaultAuthorizerName 的值,則需要此值。

  • serviceType

    AWS IoT Core 目前僅支援服DATA務類型。當您指定時DATA,會 AWS IoT 傳回端點類型為的端點iot:Data-ATS

  • TlsConfig (選用)

    為網域指定 TLS 組態的物件。如需詳細資訊,請參閱 在網域組態中設定 TLS 設定

  • serverCertificateConfig (選用)

    指定網域之伺服器憑證組態的物件。如需詳細資訊,請參閱 OCSP 裝訂的伺服器憑證組態

下列 AWS CLI 指令會為 iot .example.com 建立網域組態。

aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" --service-type "DATA" --domain-name "iot.example.com" --server-certificate-arns serverCertARN --validation-certificate-arn validationCertArn
注意

建立網域組態後,最多可能需要 60 分鐘才能 AWS IoT Core 提供您的自訂伺服器憑證。

如需詳細資訊,請參閱 管理網域組態

建立 DNS 記錄

在註冊您的伺服器憑證鏈並建立您的網域組態之後,請建立 DNS 記錄,讓您的自訂網域可以指向 AWS IoT 網域。此記錄必須指向類型的 AWS IoT 端點iot:Data-ATS。您可以使用 DescribeEndpointAPI 取得端點。

以下 AWS CLI 命令顯示如何獲取端點。

aws iot describe-endpoint --endpoint-type iot:Data-ATS

取得iot:Data-ATS端點後,請建立從自訂網域到此 AWS IoT 端點的CNAME記錄。如果您在同一個中建立多個自訂網域 AWS 帳戶,請將它們別名為此相同的iot:Data-ATS端點。

故障診斷

如果您無法將裝置連接至自訂網域,請確定 AWS IoT Core 已接受並套用您的伺服器憑證。您可以使用 AWS IoT Core 主控台或驗證是否 AWS IoT Core 已接受您的憑證 AWS CLI。

若要使用主 AWS IoT Core 控台,請瀏覽至「定」頁面,然後選取網域組態名稱。在 Server certificate details (伺服器憑證詳細資訊) 區段中,檢查狀態和狀態詳細資訊。如果憑證無效,請在 ACM 中將其取代為符合上節所列憑證需求的憑證。如果證書具有相同的 ARN, AWS IoT Core 將被拾起並自動應用它。

若要使用檢查憑證狀態 AWS CLI,請呼叫 DescribeDomainConfigurationAPI 並指定您的網域組態名稱。

注意

如果您的憑證無效, AWS IoT Core 將繼續提供最後一個有效的憑證。

您可以使用下列 openssl 命令,檢查正在端點上為哪個憑證提供服務。

openssl s_client -connect custom-domain-name:8883 -showcerts -servername custom-domain-name