共用方式為


App Service 環境的自訂網域尾碼

App Service 環境是 Azure App Service 的功能,可提供完全隔離和專用的環境,以便安全地大規模執行 App Service 應用程式。 App Service 環境預設網域尾碼的 DNS 設定不會將您的應用程式限定為只能以這些名稱存取。 自訂網域尾碼是一項內部負載平衡器 (ILB) App Service 環境功能,可讓您使用自己的網域尾碼存取您 App Service 環境中的應用程式。

如果您沒有 App Service 環境,請參閱如何建立 App Service 環境 v3

注意

本文涵蓋 App Service 環境第 3 版的功能、優點和使用案例,其會與 App Service 隔離第 2 版方案搭配使用。

自定義網域後綴會定義 App Service 環境 所使用的根域。 在 Azure App Service 的公用種變化中,所有 Web 應用程式的預設根網域皆為 azurewebsites.net 。 針對 ILB App Service 環境,預設的根網域是 appserviceenvironment.net。 不過,由於 ILB App Service 環境位於客戶虛擬網路內部,因此除了在公司內部虛擬網路內使用的預設網域之外,客戶也可以使用根網域。 例如,假定的 Contoso Corporation 可能會將 internal.contoso.com 的預設根網域用於只能在 Contoso 虛擬網路內解析和存取的應用程式。 透過存取 APP-NAME.internal.contoso.com,即可連線到此虛擬網路中的應用程式。

自訂網域尾碼適用於 App Service 環境。 這項功能與 App Service 上的自訂網域繫結不同。 如需自訂網域繫結的詳細資訊,請參閱將現有的自訂 DNS 名稱對應至 Azure App Service

如果用於自定義網域後綴的憑證包含 *.scm 的主體替代名稱 (SAN) 專案。CUSTOM-DOMAIN,scm 網站也可以從 APP-NAME.scm.CUSTOM-DOMAIN 連線。 您只能使用基本驗證來透過自訂網域存取 scm。 只有預設根網域才能使用單一登入。

不同於舊版,App Service 環境第 3 版上 App Service 的 FTPS 端點只能使用預設網域尾碼來連線。

自定義網域後綴端點的連線需要使用伺服器名稱指示 (SNI) 進行 TLS 型連線。

必要條件

  • App Service 環境 v3 的 ILB 變化。
  • 有效的 SSL/TLS 憑證必須以 .PFX 格式儲存在 Azure Key Vault 中。 如需搭配 App Service 使用憑證的詳細資訊,請參閱在 Azure App Service 中新增 TLS/SSL 憑證
  • 憑證必須小於 20 kb。

受控識別

受控識別可用來驗證儲存 SSL/TLS 憑證的 Azure Key Vault。 如果您目前沒有與 App Service 環境 相關聯的受控識別,您必須設定一個。

您可以使用系統指派或使用者指派的受控識別。 若要建立使用者指派的受控識別,請參閱管理使用者指派的受控識別。 如果您想要使用系統指派的受控識別,且尚未指派給 App Service 環境,自定義網域後綴入口網站體驗會引導您完成建立程式。 或者,您也可以前往 App Service 環境的 [身分識別] 頁面,並在該處設定和指派受控識別。

若要啟用系統指派的受控識別,請將 [狀態] 設定為 [開啟]。

範例系統指派的受控識別 App Service 環境 螢幕快照。

若要指派使用者指派的受控識別,請選取 [新增],然後尋找您想要使用的受控識別。

範例使用者指派的受控識別 App Service 環境 螢幕快照。

將受控識別指派給 App Service 環境之後,請確定受控識別具有足夠的 Azure Key Vault 權限。 您可以使用保存庫存取原則或 Azure 角色型存取控制。

如果您使用保存庫存取原則,受控識別至少需要密鑰保存庫的「取得」秘密許可權。

受控識別的範例金鑰保存庫存取原則螢幕快照。

如果您選擇使用 Azure 角色型存取權,您必須至少為受控識別提供「金鑰保存庫秘密使用者」角色。

受控識別的範例金鑰保存庫角色型訪問控制螢幕快照。

[MSSQLSERVER 的通訊協定內容]

自訂網域尾碼的憑證必須儲存在 Azure Key Vault 中。 憑證必須在 中上傳。PFX 格式且小於 20 kb。 中的憑證。目前不支援 PEM 格式。 App Service 環境 會使用您選取的受控識別來取得憑證。

您的憑證必須是所選自訂網域名稱的萬用字元憑證。 例如, internal.contoso.com 需要涵蓋 *.internal.contoso.com 的憑證。 如果自定義網域後綴所使用的憑證包含 scm 的主體替代名稱 (SAN) 專案,例如 *.scm.internal.contoso.com,則 scm 網站也可以使用自定義網域後綴。

如果您在 Azure 金鑰保存庫 中輪替憑證,App Service 環境 會在 24 小時內取得變更。

金鑰保存庫的網路存取

您可以公開存取金鑰保存庫,或透過可從部署 App Service 環境 之子網存取的私人端點存取。 若要瞭解如何設定私人端點,請參閱整合 金鑰保存庫 與 Azure Private Link。 如果您使用公用存取,您可以保護金鑰保存庫,只接受來自 App Service 環境 輸出 IP 位址的流量。 App Service 環境 會在存取金鑰保存庫時,使用平台輸出 IP 位址作為來源位址。 您可以在 Azure 入口網站 的 [IP 位址] 頁面中找到 IP 位址。

Azure 入口網站 中 [IP 位址] 頁面的螢幕快照。

使用 Azure 入口網站來設定自訂網域尾碼

  1. Azure 入口網站,瀏覽至 App Service 環境的 [自訂網域尾碼] 頁面。
  2. 輸入您的自訂網域名稱。
  3. 選取您為 App Service 環境 定義的受控識別。 您可以使用系統指派或使用者指派的受控識別。 如果您尚未這麼做,您就能夠設定受控識別。 您可以使用 [受控識別] 選取方塊中的 [新增身分識別] 選項,直接從自定義網域後綴頁面設定受控識別。 組態窗格的螢幕快照,可選取並更新 App Service 環境 的受控識別。
  4. 選取自訂網域尾碼的憑證。
    1. 如果您使用私人端點來存取密鑰保存庫,因為網路存取僅限於私人端點,因此您無法使用入口網站介面來選取憑證。 您必須手動輸入憑證 URL。
  5. 選取頁面頂端的 [儲存]。 若要查看最新的組態更新,請重新整理頁面。 自定義網域後綴入口網站體驗概觀的螢幕快照。
  6. 設定自定義網域後綴組態需要幾分鐘的時間。 選取頁面頂端的 [重新整理],以檢查狀態。 橫幅會以最新的進度進行更新。 完成後,橫幅會指出已設定自訂網域尾碼。 範例自定義網域後綴成功頁面的螢幕快照。

使用 Azure Resource Manager 來設定自訂網域尾碼

若要使用 Azure Resource Manager 範本為 App Service 環境 設定自定義網域後綴,您需要包含下列屬性。 請確定您符合必要條件,且可存取受控識別和憑證,並具有適用於 Azure 金鑰保存庫 的適當許可權。

您必須設定受控識別,並確定該身分識別存在,再在您的範本中指派它。 如需受控識別的詳細資訊,請參閱受控識別概觀

使用使用者指派的受控識別

"resources": [
{
    "apiVersion": "2022-03-01",
    "type": "Microsoft.Web/hostingEnvironments",
    "name": ...,
    "location": ...,
    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-cdns-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-cdns-managed-identity"
        }
    },
    "properties": {
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "antares-test.net",
            "certificateUrl": "https://kv-sample-key-vault.vault.azure.net/secrets/wildcard-antares-test-net",
            "keyVaultReferenceIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-cdns-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-cdns-managed-identity"
        },
        "internalLoadBalancingMode": "Web, Publishing",
        etc...
    }
}

使用系統指派的受控識別

"resources": [
{
    "apiVersion": "2022-03-01",
    "type": "Microsoft.Web/hostingEnvironments",
    "name": ...,
    "location": ...,
    "identity": {
        "type": "SystemAssigned"
    }
    "properties": {
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "antares-test.net",
            "certificateUrl": "https://kv-sample-key-vault.vault.azure.net/secrets/wildcard-antares-test-net",
            "keyVaultReferenceIdentity": "systemassigned"
        },
        "internalLoadBalancingMode": "Web, Publishing",
        etc...
    }
}

使用 Azure 資源總管來設定自訂網域尾碼

或者,您可以使用 Azure 資源總管更新現有的 ILB App Service 環境。

  1. 在 [資源總管] 中,移至 App Service 環境的節點 ([訂用帳戶] > [{您的訂用帳戶}] > [resourceGroups] > [{您的資源群組}] > [提供者] > [Microsoft.Web] > [hostingEnvironments])。 接著,選取您想要更新的特定 App Service 環境。
  2. 選取上方工具列中的 [讀取/寫入] 以允許在資源總管中進行互動式編輯。
  3. 選取 [編輯] 按鈕以開放編輯 Resource Manager 範本。
  4. 向下捲動到右窗格底部。 customDnsSuffixConfiguration 屬性位於底部。
  5. 輸入 dnsSuffixcertificateUrlkeyVaultReferenceIdentity 的值。
  6. 瀏覽至 identity 屬性,然後輸入與您所用的受控識別相關聯的詳細資料。
  7. 選取頂端的PUT按鈕,將變更認可至 App Service 環境。
  8. customDnsSuffixConfiguration 下的 provisioningState 提供組態更新的狀態。

DNS 組態

若要使用自定義網域後綴存取您 App Service 環境 中的應用程式,您必須在自定義網域的 Azure 私人 DNS 區域中設定自己的 DNS 伺服器或設定 DNS。

如果您想要使用自己的 DNS 伺服器,請新增下列記錄:

  1. 建立自訂網域的區域。
  2. 在該區域中建立 A 記錄,此記錄會將 * 指向您的 App Service 環境所使用的輸入 IP 位址。
  3. 在該區域中建立 A 記錄,此記錄會將 @ 指向您的 App Service 環境所使用的輸入 IP 位址。
  4. 選擇性地使用 * A 記錄建立 scm 子域的區域,以指向您 App Service 環境 所使用的輸入 IP 位址

若要在 Azure DNS 私人區域中設定 DNS:

  1. 建立以您自訂網域命名的 Azure DNS 私人區域。 在下列範例中,自定義網域 internal.contoso.com
  2. 在該區域中建立 A 記錄,此記錄會將 * 指向您的 App Service 環境所使用的輸入 IP 位址。
  3. 在該區域中建立 A 記錄,此記錄會將 @ 指向您的 App Service 環境所使用的輸入 IP 位址。 自定義網域後綴的範例 DNS 組態螢幕快照。
  4. 將 Azure DNS 私人區域連結至 App Service 環境的虛擬網路。 私人 DNS 區域的範例虛擬網路連結螢幕快照。
  5. 可選擇性在該區域中建立 A 記錄,此記錄會將 *.scm 指向您 App Service 環境所使用的輸入 IP 位址。

如需設定網域 DNS 的詳細資訊,請參閱使用 App Service 環境

注意

除了為自定義網域後綴設定 DNS 之外,您也應該考慮 設定預設網域後綴 的 DNS,以確保所有 App Service 功能都如預期般運作。

存取您的應用程式

為 App Service 環境設定自訂網域尾碼和 DNS 之後,可以前往 App Service 環境中其中一個 App Service 應用程式的自訂網域頁面,並確認已為應用程式新增指派的自訂網域。

App Service 環境 自定義網域後綴功能所建立之應用程式的範例自定義網域螢幕快照。

ILB App Service 環境上的應用程式可以透過 HTTPS 安全地存取,方法是前往您設定的自訂網域,或是如上一個影像所示的預設網域 appserviceenvironment.net。 只有在 App Service 環境 v3 中才能支援使用預設 App Service 環境網域以及您自訂網域存取應用程式這項獨特功能。

不過,就像在公用多租使用者服務上執行的應用程式一樣,您也可以為個別應用程式設定自定義主機名,然後為個別應用程式設定唯一的 SNI TLS/SSL 憑證系結。

疑難排解

App Service 平臺會定期檢查您的 App Service 環境 是否可以存取密鑰保存庫,以及您的憑證是否有效。 如果您的受控識別、金鑰保存庫或 App Service 環境 的許可權或網路設定未適當或最近變更,您就無法設定自定義網域後綴。 您收到類似螢幕快照中所顯示範例的錯誤。 檢閱 必要條件 ,以確保您已設定所需的許可權。 如果 App Service 平臺偵測到憑證已降級或過期,您也會看到類似的錯誤訊息。

範例自定義網域後綴錯誤訊息的螢幕快照。

下一步