Share via


Azure Container Apps 中的自定義功能變數名稱和免費受控憑證

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

如果您想要使用自己的憑證來設定自定義網域,請參閱 Azure Container Apps 中的自定義功能變數名稱和憑證。

注意

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

免費憑證需求

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

這些需求包括:

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

  • 針對頂點網域,您必須有指向 Container Apps 環境的 IP 位址的 A 記錄。

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

注意

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

新增自定義網域和受控憑證

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

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

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

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

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

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

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

    網域類型 記錄類型 備註
    Apex 網域 記錄 頂點網域是網域根層級的網域。 例如,如果您的 DNS 區域是 contoso.com,則 contoso.com 為頂點網域。
    子網域 CNAME 子域是屬於另一個網域的網域。 例如,如果您的 DNS 區域是 contoso.com,則 www.contoso.com 為可在區域中設定的子域範例。
  8. 使用裝載網域的 DNS 提供者,使用 [網域驗證] 區段中所示的值,根據您選取的 Hostname 記錄類型建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並確認您是擁有者。

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

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

      記錄類型 Host
      CNAME 子域 (例如, www 容器應用程式的自動產生 <appname>.<region>.azurecontainerapps.io 網域
      TXT asuid. 後面接著子域 (例如, asuid.www 網域驗證碼
  9. 選取驗證

  10. 驗證成功之後,請選取 [ 新增]。

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

  11. 作業完成後,您會在狀態為 [安全] 的自定義網域清單中看到您的功能變數名稱。 流覽至您的網域,確認其可存取。

Container Apps 支援頂點網域和子域。 每個網域類型都需要不同的 DNS 記錄類型和驗證方法。

網域類型 記錄類型 驗證方法 備註
Apex 網域 記錄 HTTP 頂點網域是網域根層級的網域。 例如,如果您的 DNS 區域是 contoso.com,則 contoso.com 為頂點網域。
子網域 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. 如果您要設定頂點網域,請取得 Container Apps 環境的 IP 位址。

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

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

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

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

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

  6. 取得網域驗證碼。

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

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

  7. 使用裝載網域的 DNS 提供者,使用 [網域驗證] 區段中所示的值,根據您選取的記錄類型建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並確認您擁有它。

    • 如果您要設定頂點網域,請建立下列 DNS 記錄:

      記錄類型 Host
      A @ Container Apps 環境的IP位址
      TXT asuid 網域驗證碼
    • 如果您要設定子域,請建立下列 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. 作業完成後,請流覽至您的網域,確認其可存取。

下一步