建立和設定客戶受管網域 - AWS IoT Core

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

建立和設定客戶受管網域

網域組態可讓您指定自訂的完整網域名稱 (FQDN) 以連線至 AWS IoT Core。使用客戶受管網域 (也稱為自訂網域) 有許多好處: 您可以出於品牌目的,將自己的網域或公司自己的網域公開給客戶; 您可以輕鬆變更自己的網域以指向新的代理程式; 您可以支援多租戶,為相同 內具有不同網域的客戶提供服務 AWS 帳戶; 而且您可以管理自己的伺服器憑證詳細資訊, 例如用來簽署憑證的根憑證授權機構 (CA)、 簽章演算法 憑證鏈深度 和憑證的生命週期。

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

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

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

注意

AWS IoT Core 如果憑證包含在 Mozilla 的信任 ca-bundle 中,則 會將憑證視為由公有 CA 簽署。

憑證需求

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

  • 分葉憑證必須包含值為 serverAuth(TLS Web Server 身分驗證) 的延伸金鑰用量 x509 v3 延伸。如果您向 請求憑證ACM,系統會自動新增此延伸模組。

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

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

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

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

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

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

ACM產生的公有憑證

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

由公有 CA 簽署的外部憑證

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

由私有 CA 簽署的外部憑證

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

建立驗證憑證

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

建立網域組態

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

  • domainConfigurationName

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

  • domainName

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

  • serverCertificateArns

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

  • validationCertificateArn

    您在 中產生的公有憑證ARN的 ,ACM以驗證自訂網域的擁有權。如果您使用公開簽署或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。您可以使用 DescribeEndpoint 取得端點API。

下列 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