Azure Container Apps 中的自定義功能變數名稱和免費受控憑證
Azure Container Apps 可讓您將一或多個自定義網域系結至容器應用程式。 您可以為自定義網域自動設定免費的受控憑證。
如果您想要使用自己的憑證來設定自定義網域,請參閱 Azure Container Apps 中的自定義功能變數名稱和憑證。
注意
如果您設定 自定義環境 DNS 後綴,就無法將包含此後綴的自訂網域新增至您的容器應用程式。
免費憑證需求
Azure Container Apps 為您的自定義網域提供免費受控憑證。 只要您的應用程式持續符合受控憑證的需求,您不需要採取任何動作,此 TLS/SSL 伺服器證書就會自動更新。
這些需求包括:
您的容器應用程式已啟用 HTTP 輸入,且可公開存取。
針對頂點網域,您必須有指向 Container Apps 環境的 IP 位址的 A 記錄。
針對子域,您必須有直接對應至容器應用程式自動產生功能變數名稱的 CNAME 記錄。 對應至中繼 CNAME 值會封鎖憑證發行和更新。 CNAME 值的範例包括流量管理員、Cloudflare 和類似的服務。
注意
為了確保憑證發行和後續的更新順利進行,指派受控憑證時,必須隨時符合所有需求。
新增自定義網域和受控憑證
流覽至 Azure 入口網站 中的容器應用程式
選取 [設定] 區段中的 [輸入],確認您的應用程式已啟用 HTTP 輸入。 如果未啟用輸入,請使用下列步驟加以啟用:
- 將 [HTTP 輸入] 設定為 [已啟用]。
- 選取所需的 輸入流量 設定。
- 輸入目標埠。
- 選取 [儲存]。
在 [設定] 區段底下,選取 [自定義網域]。
選取 [新增自訂網域]。
在 [新增自定義網域和憑證] 視窗中,於 [TLS/SSL 憑證] 中,選取 [受控憑證]。
在 網域中,輸入您要新增的網域。
根據網域的類型選取 [主機名] 記錄類型。
網域類型 記錄類型 備註 Apex 網域 記錄 頂點網域是網域根層級的網域。 例如,如果您的 DNS 區域是 contoso.com
,則contoso.com
為頂點網域。子網域 CNAME 子域是屬於另一個網域的網域。 例如,如果您的 DNS 區域是 contoso.com
,則www.contoso.com
為可在區域中設定的子域範例。使用裝載網域的 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
)網域驗證碼
選取驗證。
驗證成功之後,請選取 [ 新增]。
可能需要幾分鐘的時間才能發出憑證,並將網域新增至您的容器應用程式。
作業完成後,您會在狀態為 [安全] 的自定義網域清單中看到您的功能變數名稱。 流覽至您的網域,確認其可存取。
Container Apps 支援頂點網域和子域。 每個網域類型都需要不同的 DNS 記錄類型和驗證方法。
網域類型 | 記錄類型 | 驗證方法 | 備註 |
---|---|---|---|
Apex 網域 | 記錄 | HTTP | 頂點網域是網域根層級的網域。 例如,如果您的 DNS 區域是 contoso.com ,則 contoso.com 為頂點網域。 |
子網域 | CNAME | CNAME | 子域是屬於另一個網域的網域。 例如,如果您的 DNS 區域是 contoso.com ,則 www.contoso.com 為可在區域中設定的子域範例。 |
使用 Azure CLI 登入 Azure。
az login
接下來,安裝 CLI 的 Azure 容器應用程式擴充功能。
az extension add --name containerapp --upgrade
確認您的容器應用程式已啟用 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>
容器應用程式正在接聽的埠。如果您要設定頂點網域,請取得 Container Apps 環境的 IP 位址。
az containerapp env show -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.staticIp"
取代為您環境的名稱,並以
<RESOURCE_GROUP_NAME>
包含您環境的資源群組名稱取代<ENVIRONMENT_NAME>
。如果您要設定子域,請取得容器應用程式的自動產生網域。
az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.configuration.ingress.fqdn"
取代為容器應用程式的名稱,並以
<RESOURCE_GROUP_NAME>
包含容器應用程式的資源群組名稱取代<CONTAINER_APP_NAME>
。取得網域驗證碼。
az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.customDomainVerificationId"
取代為容器應用程式的名稱,並以
<RESOURCE_GROUP_NAME>
包含容器應用程式的資源群組名稱取代<CONTAINER_APP_NAME>
。使用裝載網域的 DNS 提供者,使用 [網域驗證] 區段中所示的值,根據您選取的記錄類型建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並確認您擁有它。
如果您要設定頂點網域,請建立下列 DNS 記錄:
記錄類型 Host 值 A @
Container Apps 環境的IP位址 TXT asuid
網域驗證碼 如果您要設定子域,請建立下列 DNS 記錄:
記錄類型 Host 值 CNAME 子域 (例如, www
)容器應用程式的自動產生網域 TXT asuid.
後面接著子域 (例如,asuid.www
)網域驗證碼
將網域新增至容器應用程式。
az containerapp hostname add --hostname <DOMAIN_NAME> -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME>
將 取代
<DOMAIN_NAME>
為您想要新增的功能變數名稱、<RESOURCE_GROUP_NAME>
包含容器應用程式的資源群組名稱,以及<CONTAINER_APP_NAME>
容器應用程式的名稱。設定受控憑證,並將網域系結至您的容器應用程式。
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
。
可能需要幾分鐘的時間才能發出憑證,並將網域新增至您的容器應用程式。
- 如果您要設定 A 記錄,請將 取代
作業完成後,請流覽至您的網域,確認其可存取。