自訂網域名稱,並在 Azure 容器應用程式中使用您自己的憑證
Azure 容器應用程式可讓您將一或多個自訂網域繫結至容器應用程式。
- 每個網域名稱都必須與 TLS/SSL 憑證相關聯。 您可以上傳自己的憑證,或使用免費受控憑證。
- 憑證會套用至容器應用程式環境,並繫結至個別容器應用程式。 您必須具備環境的角色型存取權,才能新增憑證。
- 需要 SNI(伺服器名稱識別)網域憑證 。
- 容器應用程式必須啟用輸入。
注意
如果您設定 自定義環境 DNS(功能變數名稱系統)後綴,則無法將包含此後綴的自定義網域新增至您的容器應用程式。
新增自訂網域和憑證
重要
如果您使用新的憑證,您必須有現有的 SNI 網域憑證 檔案可供上傳至 Azure。
瀏覽至您 Azure 入口網站中的容器應用程式
選取 [設定] 區段中的 [輸入],確認您的應用程式已啟用輸入。 如果未啟用輸入,請使用下列步驟加以啟用:
- 將 [HTTP 輸入] 設定為 [已啟用]。
- 選取所需的輸入流量設定。
- 輸入目標連接埠。
- 選取 [儲存]。
在 [設定] 區段之下,選取 [自訂網域]。
選取 [新增自訂網域] 按鈕。
在 [新增自訂網域和憑證] 視窗的 [TLS/SSL 憑證] 中,選取 [使用您自己的憑證]。
在 [網域] 中,輸入您要新增的網域。
選取 [新增憑證]。
在 [新增憑證] 視窗的 [憑證名稱] 中,輸入此憑證的名稱。
在 [憑證檔案] 區段中,瀏覽尋找您要上傳的憑證檔案。
選取驗證。
驗證成功時,請選取 [新增]。
在 [新增自訂網域和憑證] 視窗的 [憑證] 中,選取您剛才新增的憑證。
根據您的網域類型,選取 [主機名稱記錄類型]。
網域類型 記錄類型 備註 Apex 網域 記錄 Apex 網域是網域根層級的網域。 例如,如果您的 DNS (功能變數名稱系統) 區域是 contoso.com
,則contoso.com
為頂點網域。子網域 CNAME 子網域是屬於另一個網域的網域。 例如,如果您的 DNS 區域為 contoso.com
,則www.contoso.com
是可在區域中設定的子網域範例。使用裝載網域的 DNS 提供者,根據您使用 [網域驗證] 區段中顯示的值所選擇的 [主機名稱記錄類型] 建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並驗證您是否擁有它。 安裝程式取決於您是否使用自訂網域搭配私人端點 (預覽) 功能:
請按一下 [驗證] 按鈕。
驗證成功時,請選取 [新增] 按鈕。
作業完成之後,您會在自訂網域清單中看到您的網域名稱,其狀態為 [安全]。 瀏覽至您的網域,以驗證它是否可以存取。
注意
針對內部 Container Apps 環境中的容器應用程式, 需要額外的設定 ,才能搭配 VNET 範圍輸入使用自定義網域。
容器應用程式支援 Apex 網域和子網域。 每個網域類型都需要不同的 DNS 記錄類型和驗證方法。
網域類型 | 記錄類型 | 驗證方法 | 備註 |
---|---|---|---|
Apex 網域 | 記錄 | HTTP | Apex 網域是網域根層級的網域。 例如,如果您的 DNS 區域為 contoso.com ,則 contoso.com 為 Apex 網域。 |
子網域 | CNAME | CNAME | 子網域是屬於另一個網域的網域。 例如,如果您的 DNS 區域為 contoso.com ,則 www.contoso.com 是可在區域中設定的子網域範例。 |
使用 Azure CLI 登入 Azure。
az login
接下來,安裝 CLI 的 Azure 容器應用程式擴充功能。
az extension add --name containerapp --upgrade
設定下列環境變數。
<PLACEHOLDERS>
將取代為您的值。RESOURCE_GROUP = "<RESOURCE_GROUP>" CONTAINER_APP = "<CONTAINER_APP>" ENVIRONMENT = "<ENVIRONMENT>" TARGET_PORT = "<TARGET_PORT>" DOMAIN_NAME = "<DOMAIN_NAME>" CERTIFICATE_LOWERCASE_NAME = "<CERTIFICATE_LOWERCASE_NAME>" CERTIFICATE_LOCAL_PATH = "<CERTIFICATE_LOCAL_PATH>" CERTIFICATE_PASSWORD = "<CERTIFICATE_PASSWORD>"
- 以憑證檔案的本機路徑取代
<CERTIFICATE_LOCAL_PATH>
。 - 將取代
<CERTIFICATE_LOWERCASE_NAME>
為環境中唯一的小寫憑證名稱。 - 將取代
<TARGET_PORT>
為您容器應用程式正在接聽的埠。
- 以憑證檔案的本機路徑取代
確認您的容器應用程式已啟用 HTTP 輸入。
az containerapp ingress show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP
如果未啟用輸入,請使用下列步驟加以啟用:
az containerapp ingress enable \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ --type external \ --target-port $TARGET_PORT \ --transport auto
如果您要設定 Apex 網域,請取得容器應用程式環境的 IP 位址。
az containerapp env show \ -n $ENVIRONMENT \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.staticIp"
如果您要設定子網域,請取得容器應用程式的自動產生網域。
az containerapp show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.configuration.ingress.fqdn"
取得網域驗證碼。
az containerapp show \ -n $CONTAINER_APP \ -g $RESOURCE_GROUP \ -o tsv \ --query "properties.customDomainVerificationId"
使用裝載網域的 DNS 提供者,根據您使用 [網域驗證] 區段中顯示的值所選擇的記錄類型建立 DNS 記錄。 記錄會將網域指向您的容器應用程式,並驗證您是否擁有它。 安裝程式取決於您是否使用自訂網域搭配私人端點 (預覽) 功能:
將憑證上傳至您的環境。
az containerapp env certificate upload \ -g $RESOURCE_GROUP \ --name $ENVIRONMENT \ --certificate-file $CERTIFICATE_LOCAL_PATH \ --password $CERTIFICATE_PASSWORD \ --certificate-name $CERTIFICATE_LOWERCASE_NAME
將憑證和網域系結至您的容器應用程式。
az containerapp hostname bind \ --hostname $DOMAIN_NAME \ -g $RESOURCE_GROUP \ -n $CONTAINER_APP \ --environment $ENVIRONMENT \ --certificate $CERTIFICATE_LOWERCASE_NAME \ --validation-method <VALIDATION_METHOD>
如果您要設定 A 記錄,請將
<VALIDATION_METHOD>
取代為HTTP
。如果您要設定 CNAME,請將
<VALIDATION_METHOD>
取代為CNAME
。
可能需要幾分鐘的時間才能發出憑證,並將網域新增至您的容器應用程式。
作業完成後,請瀏覽至您的網域以驗證它是否可以存取。
管理憑證
您可以透過容器應用程式環境或個別容器應用程式來管理憑證。
Environment
容器應用程式環境的 [憑證] 視窗會顯示與環境相關聯的所有憑證資料表。
您可以透過下列動作來管理憑證:
動作 | 描述 |
---|---|
加 | 選取 [新增憑證] 連結以新增憑證。 |
刪除 | 選取垃圾桶圖示以移除憑證。 |
更新 | 在到期日 60 天內,資料表的 [健全狀態] 欄位會指出憑證即將到期。 若要更新憑證,請選取 [更新憑證] 連結以上傳新的憑證。 |
容器應用程式
容器應用程式的 [自訂網域] 視窗會顯示與容器應用程式相關聯的自訂網域清單。
您可以選取省略號 (...) 按鈕來管理個別功能變數名稱的憑證,這會開啟憑證繫結視窗。 從下列視窗中,您可以選取要繫結至所選功能變數名稱的憑證。