共用方式為


建立和管理 Web 應用程式的 App Service 憑證

本文會說明如何建立 App Service 憑證並執行管理工作,例如更新、同步處理和刪除憑證。 擁有 App Service 憑證之後,您就可以將其匯入 App Service 應用程式。 App Service 憑證是由 Azure 管理的私人憑證。 這兼具自動化憑證管理的簡便,以及續約和匯出選項的彈性。

如果您從 Azure 購買 App Service 憑證,Azure 會管理下列工作:

  • 處理向 GoDaddy 的購買流程。
  • 執行憑證的網域驗證。
  • 維護 Azure Key Vault 中的憑證。
  • 管理憑證更新
  • 自動將憑證與 App Service 應用程式中已匯入的複本同步。

注意

將憑證上傳至應用程式之後,憑證會儲存在部署單位中,以繫結至 App Service 方案的資源群組、區域和作業系統組合 (在內部稱為「網路空間」)。 如此一來,相同資源群組和區域組合中的其他應用程式就可以存取憑證。 會與相同部署單位中的 App Services 共用上傳或匯入至 App Service 的憑證。

必要條件

注意

目前,Azure 國家雲端不支援 App Service 憑證。

購買和設定 App Service 憑證

購買憑證

  1. 移至 [建立 App Service 憑證] 頁面以開始購買。

    注意

    從 Azure 購買的 App Service 憑證是由 GoDaddy 所簽發。 針對某些網域,您必須建立值為 0 issue godaddy.comCAA 網域記錄,以明確允許 GoDaddy 作為憑證簽發者。

    [建立 App Service 憑證] 窗格的螢幕擷取畫面,其中包含購買選項。

  2. 若要設定憑證,請使用下表。 完成後,請選取 [檢閱 + 建立],然後選取 [建立]

    設定 描述
    訂用帳戶 要與憑證建立關聯的 Azure 訂閱。
    資源群組 會包含憑證的資源群組。 您可以建立新的資源群組,或選取相同的資源群組作為您的 App Service 應用程式。
    SKU 決定要建立的憑證類型:標準憑證或萬用字元憑證
    裸網域主機名稱 指定根網域。 發行憑證可為根網域和 www 子網域提供安全性。 在發行的憑證中,[通用名稱] 欄位會指定根網域,而 [主體別名] 欄位會指定 www 網域。 若只要為子網域提供安全性,請指定子網域的完整網域名稱,例如 mysubdomain.contoso.com
    憑證名稱 App Service 憑證的易記名稱。
    啟用自動更新 選擇是否要自動在到期前更新憑證。 每次續約都會將憑證有效期延長一年。 費用會計入您的訂用帳戶。
  3. 當部署完成時,請選取 [前往資源]

將憑證儲存至 Azure Key Vault

Key Vault 是一項 Azure 服務,可協助保護雲端應用程式和服務所使用的密碼編譯金鑰和祕密。 針對 App Service 憑證,建議您使用 Key Vault。 完成憑證購買流程之後,您必須完成其他幾個步驟才能開始使用該憑證。

  1. App Service 憑證頁面上,選取憑證。 在憑證功能表上,選取 [憑證設定]>[步驟 1:儲存]

    [憑證設定] 窗格的螢幕擷取畫面,其中已選取 [步驟 1:儲存]。

  2. 在 [金鑰保存庫狀態] 頁面上,選取 [從金鑰保存庫選取]

  3. 如果您建立新的保存庫,請根據下表設定保存庫,並確定使用與您 App Service 應用程式相同的訂閱和資源群組。

    設定 描述
    資源群組 建議使用:與您 App Service 憑證相同的資源群組。
    金鑰保存庫名稱 只使用英數字元和虛線的唯一名稱。
    區域 與您 App Service 應用程式相同的位置。
    定價層 如需詳細資訊,請參閱 Azure Key Vault 定價詳細資料
    已刪除值的保留天數 刪除後該物件仍可復原的天數。 (請參閱 Azure Key Vault 虛刪除概觀。)設定介於 7 到 90 之間的值。
    清除保護 啟用此選項會強制所有已刪除的物件在整個保留期間保持虛刪除狀態。
  4. 選取 [下一步],然後選取 [保存庫存取原則]。 目前,App Service 憑證僅支援金鑰保存庫存取原則,不支援 RBAC 模型。

  5. 選取 [檢閱 + 建立],然後選取 [建立]。

  6. 建立金鑰保存庫之後,請勿選取 [移至資源]。 等候 [從 Azure Key Vault 選取金鑰保存庫] 頁面重新載入。

  7. 選取選取

  8. 選取保存庫之後,請關閉 [Key Vault 存放庫] 頁面。 [步驟 1:儲存] 選項應該會顯示綠色核取記號來表示成功。 讓頁面保持開啟,以供下一個步驟使用。

確認網域擁有權

  1. 從與上一節中的相同 [憑證設定] 頁面,選取 [步驟 2:驗證]

    [憑證設定] 窗格的螢幕擷取畫面,其中已選取 [步驟 2:驗證]。

  2. 選取 [App Service 驗證]。 由於您稍早已將網域對應至本節的 Web 應用程式,因此該網域已通過驗證。 若要完成此步驟,只要選取 [驗證],然後選取 [重新整理],直到 [憑證已經過網域驗證] 訊息出現為止。

支援下列網域驗證方法:

方法 描述
App Service 驗證 當網域已對應至相同訂閱中的 App Service 應用程式時,這是最方便的選項,因為 App Service 應用程式已驗證網域擁有權。 請檢閱確認網域擁有權中的最後一個步驟。
網域驗證 確認您購自 Azure 的 App Service 網域。 Azure 會自動為您新增驗證 TXT 記錄,並完成程序。
郵件驗證 將電子郵件傳送給網域系統管理員來確認網域。 當您選取此選項時,系統會提供指示。
手動驗證 使用 DNS TXT 記錄或 HTML 頁面來確認網域。 (後者僅適用於標準憑證。請參閱下列附註。)選取此選項之後,系統會提供步驟。 HTML 網頁選項不適用於已啟用 [僅限 HTTPS] 的 Web 應用程式。 若要透過根網域 (例如 contoso.com) 或子網域 (例如 www.contoso.comtest.api.contoso.com) 的 DNS TXT 記錄進行網域驗證,無論憑證 SKU 為何,您都需要在根網域層級新增 TXT 記錄,並在 DNS 記錄中使用 @ 作為名稱以及網域驗證權杖作為值。

重要

若為標準憑證,您會取得針對所要求的最上層網域 www 子網域 (例如 contoso.comwww.contoso.com) 的憑證。 不過,App Service 驗證和手動驗證都使用 HTML 頁面驗證,此驗證在您發行、重設金鑰或更新憑證時不支援 www 子網域。 針對標準憑證,請使用網域驗證和電子郵件驗證,以在憑證中包括 www 子網域和所要求的最上層網域。

一旦憑證經過網域驗證,您就可以將其匯入 App Service 應用程式

更新 App Service 憑證

App Service 憑證的有效期間預設為一年。 您可以在到期日之前,以一年為單位手動更新 App Service 憑證。 更新流程實際上會為您提供新的 App Service 憑證,到期日從現有憑證的到期日延長至一年。

注意

自 2021 年 9 月 23 日起,如果您在過去 395 天內尚未驗證網域,App Service 憑證會在更新、自動更新或重設密鑰程式期間要求網域驗證。 在更新、自動更新或重設密鑰程式期間,新的憑證訂單會維持在「擱置發行」模式中,直到您完成網域驗證為止。

不同於免費的 App Service 受控憑證,購買的 App Service 憑證不具有自動網域重新驗證。 無法驗證網域擁有權會導致更新失敗。 如需如何驗證 App Service 憑證的詳細資訊,請參閱確認網域擁有權

更新流程要求 App Service 的服務主體具有金鑰保存庫的必要權限。 當您透過 Azure 入口網站匯入 App Service 憑證時,系統會為您設定這些權限。 請確定您不會將這些權限從金鑰保存庫中移除。

  1. 若要隨時變更 App Service 憑證的自動更新設定,請在 App Service 憑證頁面上選取憑證。

  2. 在左側功能表上,選取 [自動更新設定]

  3. 選取 [開啟] 或 [關閉],然後選取 [儲存]

    如果您開啟自動更新,則憑證可以在到期前的 32 天開始自動更新。

    指定憑證的自動續約設定的螢幕擷取畫面。

  4. 若要改為手動更新憑證,請選取 [手動更新]。 您可以在過期前的 60 天要求手動續約憑證,但憑證的有效期不能超過 397 天

  5. 更新作業完成後,請選取 [同步]

    同步作業會自動更新 App Service 中憑證的主機名稱繫結,而不會對您的應用程式造成任何停機。

    注意

    如果您未選取 [同步],則 App Service 會在 24 小時內自動同步憑證。

重設 App Service 憑證的金鑰

如果您認為您憑證的私密金鑰遭到入侵,您可以重設憑證的金鑰。 此動作會以憑證授權單位發行的新憑證來輪替憑證。

  1. App Service 憑證頁面上,選取憑證。 從左側功能表,選取 [重設金鑰與同步]

  2. 若要啟動此程序,請選取 [重設金鑰]。 此程序需要 1 - 10 分鐘才能完成。

    重設 App Service 憑證金鑰的螢幕擷取畫面。

  3. 您可能也需要重新確認網域擁有權

  4. 重設金鑰作業完成後,請選取 [同步]

    同步作業會自動更新 App Service 中憑證的主機名稱繫結,而不會對您的應用程式造成任何停機。

    注意

    如果您未選取 [同步],則 App Service 會在 24 小時內自動同步憑證。

匯出 App Service 憑證

由於 App Service 憑證是 Key Vault 祕密,因此您可以將複本匯出為 PFX 檔案,以便在其他 Azure 服務中或 Azure 外部使用。

重要

匯出的憑證為非受控成品。 更新 App Service 憑證時,App Service 不會同步這類成品。 您必須匯出更新的憑證並安裝在所需之處。

  1. App Service 憑證頁面上,選取憑證。

  2. 在左側功能表上,選取 [匯出憑證]

  3. 選取 [開啟金鑰保存庫祕密]

  4. 選取憑證的目前版本。

  5. 選取 [下載為憑證]

下載的 PFX 檔案是原始 PKCS12 檔案,其中包含公開和私人憑證,而其匯入密碼是空字串。 您可以透過將密碼欄位保留空白,在本機安裝檔案。 您無法將檔案依原狀上傳至 App Service,因為檔案未受密碼保護

使用 Azure Advisor for App Service 憑證

App Service 憑證會與 Azure Advisor 整合,以提供憑證需要網域驗證時的可靠性建議。 如果您在過去 395 天內尚未驗證網域,則必須在更新、自動更新或重設密鑰程式期間驗證憑證的網域擁有權。 若要確保您不會錯過任何需要驗證的憑證,或讓任何憑證有過期的風險,您可以使用 Azure Advisor 來檢視和設定 App Service 憑證的警示。

檢視建議程序建議

若要檢視 App Service 憑證的 Advisor 建議:

  1. 流覽至 Azure Advisor 頁面

  2. 從左側功能表中,選取 [ 建議>可靠性]

  3. 選取篩選選項 [類型等於] ,並從下拉式清單中搜尋 App Service 憑證 。 如果值不存在於下拉功能表中,這表示您的App Service 憑證資源不會產生任何建議,因為它們都不需要網域擁有權驗證。

建立 Advisor 警示

您可以使用不同的組態,在新的建議上建立 Azure Advisor 警示。 若要特別設定 App Service 憑證的 Advisor 警示,以便在憑證需要網域擁有權驗證時收到通知:

  1. 流覽至 Azure Advisor 頁面

  2. 從左側選單中,選取 [ 監視>警示] (預覽)

  3. 按兩下頂端動作列上的 [ + 新增建議程式警示 ]。 這會開啟名為 「Create Advisor Alerts」 的新刀鋒視窗。

  4. 在 [條件] 底下,選取下列專案:

    設定者 建議類型
    建議類型 需要網域驗證才能核發 App Service 憑證
  5. 填寫其餘必要欄位,然後選取底部的 [ 建立警示] 按鈕。

刪除 App Service 憑證

如果您刪除 App Service 憑證,則刪除作業會是無法復原的最終結果。 這會導致憑證遭到撤銷,而 App Service 中使用該憑證的任何繫結都會變成無效。

  1. App Service 憑證頁面上,選取憑證。

  2. 從左側功能表,選取 [概觀]>[刪除]

  3. 確認方塊開啟時,請輸入憑證名稱,然後選取 [確定]

常見問題集

App Service 憑證在金鑰保存庫中沒有任何值

您的 App Service 憑證可能尚未通過網域驗證。 在確認網域擁有權之前,App Service 憑證尚未提供使用。 作為 Key Vault 祕密,其會維持 Initialize 標籤,且其值和內容類型會維持空白。 確認網域擁有權時,金鑰保存庫祕密會顯示值和內容類型,而標籤會變更為 Ready

我無法使用 PowerShell 匯出 App Service 憑證

您的 App Service 憑證可能尚未通過網域驗證。 在確認網域擁有權之前,App Service 憑證尚未提供使用。

App Service 憑證建立流程會對現有金鑰保存庫進行哪些變更?

建立程序會進行下列變更:

  • 在保存庫中新增兩個存取原則:
    • Microsoft.Azure.WebSites (或 Microsoft Azure App Service)
    • Microsoft 憑證轉銷商 CSM 資源提供者 (或 Microsoft.Azure.CertificateRegistration)
  • 在保存庫中建立名為 AppServiceCertificateLock 的 [刪除鎖定],以防止意外刪除金鑰保存庫。