建立和管理 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 憑證建立頁面,並開始購買 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 之間的值。
    清除保護 防止手動清除物件虛刪除的 st 物件。 啟用此選項會強制所有已刪除的物件在整個保留期間保持虛刪除狀態。
  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 應用程式。 針對任何一個根域的 DNS TXT 記錄進行網域驗證(亦即。“contoso.com”) 或子域 (即.“www.contoso.com”、“test.api.contoso.com”)以及不論憑證 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,因為檔案未受密碼保護

刪除 App Service 憑證

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

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

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

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

常見問題集

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

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

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

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

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

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

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

更多資源