共用方式為


Azure 容器應用程式中的自訂網域名稱和免費受控憑證

Azure 容器應用程式可讓您將一或多個自訂網域繫結至容器應用程式。 您可以為自訂網域自動設定免費的受控憑證。

如果您想要使用自己的憑證來設定自訂網域,請參閱在 Azure 容器應用程式中的自訂網域名稱和憑證

注意

如果您設定自訂環境 DNS 尾碼,則無法將包含此尾碼的自訂網域新增至您的容器應用程式。

免費憑證需求

Azure 容器應用程式為您的自訂網域提供免費的受控憑證。 只要您的應用程式持續符合受控憑證的需求,您不需要採取任何動作,此 TLS/SSL 伺服器憑證就會自動更新。

這些需求包括:

  • 啟用 HTTP 輸入,並確保您的容器應用程式可公開存取。

  • 針對指向容器應用程式環境 IP 位址的 Apex 網域,您必須具備 A 記錄。

  • 針對子網域,您必須有直接與容器應用程式自動產生的網域名稱對應的 CNAME 記錄。 對應至中繼 CNAME 值會導致無法發行和更新憑證。 CNAME 值的範例包括流量管理員、Cloudflare 和類似的服務。

注意

為了確保憑證發行和後續的更新順利進行,指派受控憑證時,必須隨時符合所有需求。

新增自訂網域和受控憑證

  1. 瀏覽至您 Azure 入口網站中的容器應用程式

  2. 選取 [設定] 區段中的 [輸入],確認您的應用程式已啟用 HTTP 輸入。 如果未啟用輸入,請使用下列步驟加以啟用:

    1. 將 [HTTP 輸入] 設定為 [已啟用]
    2. 選取所需的輸入流量設定。
    3. 輸入目標連接埠
    4. 選取 [儲存]。
  3. 在 [設定] 區段之下,選取 [自訂網域]

  4. 選取 [新增自訂網域]

  5. 在 [新增自訂網域和憑證] 視窗的 [TLS/SSL 憑證] 中,選取 [受控憑證]

  6. 在 [網域] 中,輸入您要新增的網域。

  7. 根據您的網域類型,選取 [主機名稱記錄類型]

    網域類型 記錄類型 備註
    Apex 網域 記錄 Apex 網域是網域根層級的網域。 例如,如果您的 DNS 區域為 contoso.com,則 contoso.com 為 Apex 網域。
    子網域 CNAME 子網域是屬於另一個網域的網域。 例如,如果您的 DNS 區域為 contoso.com,則 www.contoso.com 是可在區域中設定的子網域範例。
  8. 使用裝載網域的 DNS 提供者,根據您使用 [網域驗證] 區段中顯示的值所選擇的 [主機名稱記錄類型] 建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並驗證您是否為擁有者。 安裝程式取決於您是否使用自訂網域搭配私人端點 (預覽) 功能:

    • 如果您選取 [A 記錄],請建立下列 DNS 記錄:

      記錄類型 Host
      A @ Container Apps 環境的IP位址。
      TXT asuid 網域驗證碼。
    • 如果您選取 CNAME,請建立下列 DNS 記錄:

      記錄類型 Host
      CNAME 子網域 (例如,www) 容器應用程式的產生網域。
      TXT asuid. 後面接著子網域 (例如,asuid.www) 網域驗證碼。
  9. 選取驗證

  10. 驗證成功時,請選取 [新增]

    可能需要幾分鐘的時間才能發出憑證,並將網域新增至您的容器應用程式。

  11. 作業完成之後,您會在自訂網域清單中看到您的網域名稱,其狀態為 [安全]。 瀏覽至您的網域,以驗證它是否可以存取。

容器應用程式支援 Apex 網域和子網域。 每個網域類型都需要不同的 DNS 記錄類型和驗證方法。

網域類型 記錄類型 驗證方法 備註
Apex 網域 記錄 HTTP Apex 網域是網域根層級的網域。 例如,如果您的 DNS 區域為 contoso.com,則 contoso.com 為 Apex 網域。
子網域 CNAME CNAME 子網域是屬於另一個網域的網域。 例如,如果您的 DNS 區域為 contoso.com,則 www.contoso.com 是可在區域中設定的子網域範例。
  1. 使用 Azure CLI 登入 Azure。

    az login
    
  2. 接下來,安裝 CLI 的 Azure 容器應用程式擴充功能。

    az extension add --name containerapp --upgrade
    
  3. 確認您的容器應用程式已啟用 HTTP 輸入。

    az containerapp ingress show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME>
    

    如果未啟用輸入,請使用下列步驟加以啟用:

    az containerapp ingress enable -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> \
            --type external --target-port <TARGET_PORT> --transport auto
    

    以容器應用程式的名稱取代 <CONTAINER_APP_NAME><RESOURCE_GROUP_NAME> 取代為包含容器應用程式的資源群組名稱,並以容器應用程式正在接聽的連接埠取代 <TARGET_PORT>

  4. 如果您要設定 Apex 網域,請取得容器應用程式環境的 IP 位址。

    az containerapp env show -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.staticIp"
    

    以您的環境名稱取代 <ENVIRONMENT_NAME>,並以包含您環境的資源群組名稱取代 <RESOURCE_GROUP_NAME>

  5. 如果您要設定子網域,請取得容器應用程式的自動產生網域。

    az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.configuration.ingress.fqdn"
    

    <CONTAINER_APP_NAME> 取代為容器應用程式的名稱,並將 <RESOURCE_GROUP_NAME> 取代為包含容器應用程式的資源群組名稱。

  6. 取得網域驗證碼。

    az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.customDomainVerificationId"
    

    <CONTAINER_APP_NAME> 取代為容器應用程式的名稱,並將 <RESOURCE_GROUP_NAME> 取代為包含容器應用程式的資源群組名稱。

  7. 使用裝載網域的 DNS 提供者,根據您使用 [網域驗證] 區段中顯示的值所選擇的記錄類型建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並驗證您是否擁有它。 安裝程式取決於您是否使用自訂網域搭配私人端點 (預覽) 功能:

    • 如果您選取 [A 記錄],請建立下列 DNS 記錄:

      記錄類型 Host
      A @ Container Apps 環境的IP位址。
      TXT asuid 網域驗證碼。
    • 如果您選取 CNAME,請建立下列 DNS 記錄:

      記錄類型 Host
      CNAME 子網域 (例如,www) 容器應用程式的產生網域。
      TXT asuid. 後面接著子網域 (例如,asuid.www) 網域驗證碼。
  8. 將網域新增至容器應用程式。

    az containerapp hostname add --hostname <DOMAIN_NAME> -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME>
    

    以您想要新增的網域名稱取代 <DOMAIN_NAME><RESOURCE_GROUP_NAME> 取代為包含容器應用程式的資源群組名稱,並以容器應用程式的名稱取代 <CONTAINER_APP_NAME>

  9. 設定受控憑證,並將網域繫結至您的容器應用程式。

    az containerapp hostname bind --hostname <DOMAIN_NAME> -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --environment <ENVIRONMENT_NAME> --validation-method <VALIDATION_METHOD>
    

    以您想要新增的網域名稱取代 <DOMAIN_NAME><RESOURCE_GROUP_NAME> 取代為包含容器應用程式的資源群組名稱、<CONTAINER_APP_NAME> 取代為容器應用程式的名稱,並以您的環境名稱取代 <ENVIRONMENT_NAME>

    • 如果您要設定 A 記錄,請將 <VALIDATION_METHOD> 取代為 HTTP
    • 如果您要設定 CNAME,請將 <VALIDATION_METHOD> 取代為 CNAME

    可能需要幾分鐘的時間才能發出憑證,並將網域新增至您的容器應用程式。

  10. 作業完成後,請瀏覽至您的網域以驗證它是否可以存取。

下一步