共用方式為


新增和管理 Azure App Service 中的 TLS/SSL 憑證

您可以新增數位安全性憑證,以在應用程式程式代碼中使用,或協助保護 Azure App Service 中的自定義功能變數名稱系統 (DNS) 名稱。 App Service 提供高度擴展性和自我修復的網頁代管服務。 憑證目前稱為傳輸層安全性 (TLS) 憑證。 它們先前稱為安全套接字層 (SSL) 憑證。 這些私人或公開憑證可協助您保護因特網連線。 憑證會加密瀏覽器、您瀏覽的網站和網站伺服器之間傳送的數據。

下表列出在 App Service 中新增憑證的選項。

選項 描述
建立免費 App Service 受控憑證 免費且易於使用的私人憑證是改善 App Service 中 自定義網域 的安全性的不二選擇。
匯入 App Service 憑證 Azure 會管理私人憑證。 這兼具自動化憑證管理的簡便,以及續約和匯出選項的彈性。
從 Azure Key Vault 匯入憑證 如果您使用 Key Vault 來管理 PKCS12 憑證,則很有用。 請參閱私人憑證需求
上傳私人憑證 如果您已經有來自非Microsoft提供者的私人憑證,您可以上傳它。 請參閱私人憑證需求
上傳公開憑證 公開憑證不是用來保護自訂網域,但如果您需要用它們來存取遠端資源,可以將其載入至程式碼。

必要條件

一私人憑證需求

免費 App Service 受控憑證App Service 憑證已經符合 App Service 的需求。 如果您選擇將私人憑證上傳或匯入至 App Service,您的憑證就必須符合下列需求:

如果您想要協助保護 TLS 系結中的自定義網域,憑證必須符合下列額外需求:

  • 包含用於伺服器驗證的擴展的金鑰使用法(OID = 1.3.6.1.5.5.7.3.1)。
  • 由受信任的證書頒發機構單位簽署。

注意

橢圓曲線密碼編譯 (ECC) 憑證 會在上傳為 PFX 時與 App Service 搭配運作,但目前無法從 Key Vault 匯入。 本文未涵蓋它們。 如需建立 ECC 憑證的確切步驟,請洽詢您的憑證授權單位。

將私人憑證新增至應用程式之後,憑證會儲存在與 App Service 計劃的資源群組、區域和作業系統組合綁定的部署單元中。 在內部,它被稱作Webspace。 如此一來,相同資源群組、區域和作業系統組合中的其他應用程式就可以存取憑證。 上傳或匯入至 App Service 的私人憑證會與相同部署單位中的應用程式服務共用。

每個 Webspace 最多可新增 1,000 個私人憑證。

建立免費的受控憑證

免費的 App Service 受控憑證是一種周全解決方案,可協助保護 App Service 中的自定義 DNS 名稱。 App Service 會管理此 TLS/SSL 伺服器證書,而不需要您採取任何動作。

建立免費的受控憑證之前,請確定 您符合應用程式的必要條件

DigiCert 會發出免費憑證。 對於某些網域,您必須建立值為0 issue digicert.com,以明確允許 DigiCert 作為憑證簽發者。

Azure 會為您完全管理憑證,因此受控憑證的任何層面,包括根簽發者,隨時都可以變更。 憑證更新會同時變更公開和私鑰部分。 所有這些憑證變更都超出您的控制範圍。 請務必避免硬性依賴,並避免將測試憑證綁定到受管憑證或憑證階層的任何部分。 如果您需要憑證釘選行為,請使用本文中的其他任何可用方法,將憑證新增至您的自定義網域。

免費憑證有下列限制:

  • 不支援萬用字元憑證。
  • 不支援使用憑證指紋作為客戶端憑證,此指紋已規劃淘汰和移除。
  • 不支援私人 DNS。
  • 無法匯出。
  • 並未支援於 App Service 環境。
  • 僅支援英數位元、虛線 (-) 和句號 (.)。
  • 支援長度高達 64 個字元的自定義網域。
  • A 記錄必須指向 Web 應用程式的 IP 位址。
  • 必須位於可公開存取的應用程式上。
  • 不支援與 Azure 流量管理員整合的根域。
  • 必須符合上述所有準則,才能成功發行和更新憑證。
  1. Azure 入口網站的左窗格中,選取 [App Services><應用程式名稱>]。

  2. 在應用程式的左窗格中,選取 [ 憑證]。 在 [ 受控憑證] 窗格中,選取 [新增憑證]。

    顯示應用程式面板的螢幕快照,其中包含已選取的 [憑證]、[受控憑證] 和 [新增憑證]。

  3. 選取免費憑證的自訂網域,然後選取 [驗證]。 驗證完成時,選取 [新增]。 您只能為每個支援的自訂網域建立一個受控憑證。

    作業完成後,憑證會出現在 [受控憑證 ] 清單中。

    顯示 [受控憑證] 窗格的螢幕快照,其中包含列出的新憑證。

  4. 若要為此憑證提供自定義網域的安全性,您必須建立憑證系結。 請遵循在 Azure App Service 中使用 TLS/SSL 繫結保護自訂 DNS 名稱中的步驟。

匯入 App Service 憑證

若要匯入 App Service 憑證,請先購買並設定 App Service 憑證,然後遵循此處的步驟。

  1. Azure 入口網站的左窗格中,選取 [App Services><應用程式名稱>]。

  2. 在應用程式的左窗格中,選取 [ 憑證>攜帶您自己的憑證] [.pfx][>新增憑證]。

  3. 在 [來源] 底下,選取 [匯入 App Service 憑證]。

  4. [App Service 憑證] 底下,選取您建立的憑證。

  5. 憑證易記名稱 底下,為憑證指定一個在應用程式中的名稱。

  6. 選取驗證。 驗證成功時,請選取 [新增]

    顯示應用程式管理頁面的螢幕快照,其中包含 [憑證]、[攜帶您自己的憑證] 和 [匯入 App Service 憑證]。[新增私鑰憑證] 窗格會顯示 [驗證]。

    作業完成後,憑證會出現在 攜帶您自己的憑證 (.pfx) 清單中

    < c1>< c0>< sb0>顯示 [攜帶您自己的憑證 (.pfx)] 窗格的螢幕快照,其中列出已購買的憑證。

  7. 若要協助使用此憑證保護自定義網域,您必須建立憑證系結。 請遵循在 Azure App Service 中使用 TLS/SSL 繫結保護自訂 DNS 名稱中的步驟。

從 Key Vault 匯入憑證

如果您使用 Key Vault 來管理您的憑證,您可以視 需要從 Key Vault 將 PKCS12 憑證匯入 App Service。

授權 App Service 從保存庫讀取

根據預設,App Service 資源提供者無法存取您的金鑰保存庫。 若要使用金鑰保存庫進行憑證部署,您必須授權資源提供者 (App Service) 對金鑰保存庫的讀取權限。 您可以使用存取原則或角色型存取控制 (RBAC) 來授與存取權。

資源提供者 服務主體應用程式識別碼 / 受託人 Key Vault RBAC 角色
Azure App Service 或 Microsoft.Azure.WebSites - abfa0a7c-a6b6-4736-8310-5855508787cd 適用於 Azure 雲端服務

- 6a02c803-dafd-4136-b4c3-5a6f318b4714 專為政府需求設計的 Azure 雲端服務
憑證使用者

服務主體應用程式識別碼或受託人值是 App Service 資源提供者的識別碼。 使用 RBAC 授與存取權時,服務主體應用程式識別碼的對應物件標識碼會專屬於租使用者。 若要瞭解如何使用存取原則來授權 App Service 資源提供者的 Key Vault 許可權,請參閱 使用 Azure 角色型存取控制提供 Key Vault 金鑰、憑證和秘密的存取權。

az role assignment create --role "Key Vault Certificate User" --assignee "abfa0a7c-a6b6-4736-8310-5855508787cd" --scope "/subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}"

將憑證從您的保存庫匯入到您的應用程式

  1. Azure 入口網站的左窗格中,選取 [App Services><應用程式名稱>]。

  2. 在應用程式的左窗格中,選取 [ 憑證>攜帶您自己的憑證] [.pfx][>新增憑證]。

  3. [來源] 底下,選取 [從 Key Vault 匯入]。

  4. 選擇 [選取金鑰保存庫憑證]。

    顯示應用程式管理頁面的螢幕擷取畫面,包含已選取的 [憑證]、[攜帶您自己的憑證 (.pfx)] 和 [從金鑰保存庫匯入]。

  5. 為了協助您選取憑證,請使用下表:

    設定 描述
    訂用帳戶 與金鑰保存庫相關聯的訂閱。
    金鑰保管庫 具有您想要匯入之憑證的金鑰保存庫。
    [MSSQLSERVER 的通訊協定內容] 從此清單,選取位於保存庫中的 PKCS12 憑證。 保存庫中所有的 PKCS12 憑證會連同其指紋一併列出,但在 App Service 中並非皆受到支援。
  6. 完成選取之後,選擇 [ 選取>驗證],然後選取 [ 新增]。

    作業完成後,憑證會出現在 攜帶您自己的憑證 (.pfx) 清單中。 如果匯入失敗並發生錯誤,則表示憑證不符合 App Service 的需求

    顯示 [攜帶您自己的憑證 ](.pfx) 窗格的螢幕快照,其中包含列出的匯入憑證。

    如果您以新憑證更新 Key Vault 中的憑證,App Service 會在 24 小時內自動同步憑證。

  7. 若要協助使用此憑證保護自定義網域,您必須建立憑證系結。 請遵循在 Azure App Service 中使用 TLS/SSL 繫結保護自訂 DNS 名稱中的步驟。

上傳私人憑證

從憑證提供者取得憑證之後,請遵循本節中的步驟,讓憑證可用於 App Service。

合併中繼憑證

如果您的證書頒發機構單位在憑證鏈結中提供多個憑證,您必須遵循相同的順序來合併憑證。

  1. 在文字編輯器中,開啟每個收到的憑證。

  2. 若要儲存合併的憑證,請建立名為 mergedcertificate.crt 的檔案。

  3. 將每個憑證的內容複製到這個檔案中。 請務必遵循憑證鏈結所指定的憑證順序。 從您的憑證開始,並以根憑證結尾,例如:

    -----BEGIN CERTIFICATE-----
    <your entire Base64 encoded SSL certificate>
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    <The entire Base64 encoded intermediate certificate 1>
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    <The entire Base64 encoded intermediate certificate 2>
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    <The entire Base64 encoded root certificate>
    -----END CERTIFICATE-----
    

將合併的私人憑證導出至 .pfx

現在,您可以透過用來產生憑證要求的私密金鑰,匯出合併的 TLS/SSL 憑證。 如果您使用 OpenSSL 產生憑證要求,則您已建立私鑰檔案。

OpenSSL v3 將預設加密從 3DES 變更為 AES256。 使用命令行 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1 覆寫變更。

OpenSSL v1 會使用 3DES 做為預設值,因此支持產生的 .pfx 檔案,而不需要任何特殊修改。

  1. 若要將憑證導出至 .pfx 檔案,請執行下列命令。 將佔位元 <合併憑證檔案的路徑。>

    openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>  
    
  2. 出現提示時,請指定匯出作業的密碼。 當您稍後將 TLS/SSL 憑證上傳至 App Service 時,您必須提供此密碼。

  3. 如果您使用 IIS 或 Certreq.exe 產生憑證要求,請將憑證安裝到本機計算機,然後將 憑證導出至 .pfx 檔案

上傳憑證至 App Service

您現在已準備好將憑證上傳至 App Service。

  1. Azure 入口網站的左窗格中,選取 [App Services><應用程式名稱>]。

  2. 在應用程式的左窗格中,選取 [憑證>攜帶您自己的憑證] (.pfx)>上傳憑證 [.pfx]。

    顯示應用程式管理頁面的螢幕快照,其中選擇了 [憑證]、[攜帶您自己的憑證 (.pfx)] 和 [上傳憑證 (.pfx)]。

  3. 為了協助您上傳 .pfx 憑證,請使用下表:

    設定 描述
    PFX 憑證檔案 選取您的 .pfx 檔案。
    憑證密碼 輸入匯出 .pfx 檔案時所建立的密碼。
    憑證自訂名稱 出現在 Web 應用程式中的憑證名稱。
  4. 完成選取之後,選擇 [ 選取>驗證],然後選取 [ 新增]。

    作業完成後,憑證會出現在 攜帶您自己的憑證 (.pfx) 清單中

    此螢幕快照顯示 [攜帶您自己的憑證] 窗格,以及已列出的上傳憑證。

  5. 若要為此憑證提供自定義網域的安全性,您必須建立憑證系結。 請遵循在 Azure App Service 中使用 TLS/SSL 繫結保護自訂 DNS 名稱中的步驟。

上傳公開憑證

公開憑證支援 .cer 格式。

將公用憑證上傳至應用程式之後,它只能由上傳的應用程式存取。 公開憑證必須上傳至每個需要存取權的個別 Web 應用程式。 如需 App Service 環境特有的案例,請參閱 憑證和 App Service 環境的文件

每個 App Service 方案最多可以上傳 1,000 個公開憑證。

  1. Azure 入口網站的左窗格中,選取 [App Services><應用程式名稱>]。

  2. 在應用程式的左窗格中,選取 [ 憑證>公鑰憑證][.cer][>新增憑證]。

  3. 為了協助您上傳 .cer 憑證,請使用下表:

    設定 描述
    .cer憑證檔案 選取您的 .cer 檔案。
    憑證自訂名稱 出現在 Web 應用程式中的憑證名稱。
  4. 完成之後,請選取 [新增]。

    顯示應用程式管理頁面的螢幕快照。它會顯示要上傳的公鑰憑證及其名稱。

  5. 上傳憑證之後,請複製憑證指紋,然後檢閱使憑證可供存取

更新即將到期的憑證

在憑證到期之前,請務必將更新的憑證新增至 App Service。 更新所有依賴於憑證類型的憑證綁定。 例如,從 Key Vault 匯入的憑證 (包括 App Service 憑證) 每 24 小時自動同步至 App Service,並在您更新憑證時更新 TLS/SSL 繫結。

對於上傳的憑證,不會自動更新繫結。 根據您的案例,檢閱對應的章節:

更新上傳的憑證

取代即將到期的憑證時,您以新憑證更新憑證繫結的方式,可能對使用者體驗造成負面影響。 例如,當您刪除系結時,輸入IP位址可能會變更,即使該系結是以IP為基礎也一樣。 當您更新已在IP型系結中的憑證時,此結果特別有效。

若要避免變更應用程式的IP位址,並避免因 HTTPS 錯誤而造成應用程式的停機時間,請遵循下列步驟:

  1. 上傳新憑證

  2. 移至您的應用程式的 [自訂網域] 頁面,選取 [...] 按鈕,然後選取 [更新繫結]

  3. 選取新的憑證,然後選取 [ 更新]。

  4. 刪除現有的憑證。

更新從 Key Vault 匯入的憑證

若要更新 App Service 憑證,請參閱更新 App Service 憑證

若要從 Key Vault 更新您匯入至 App Service 的憑證,請參閱 更新您的 Azure Key Vault 憑證

在您的金鑰保存庫中更新憑證後,App Service 會在 24 小時內自動同步新的憑證,並更新任何適用的憑證繫結。 若要手動同步,請遵循下列步驟:

  1. 移至您應用程式的 [憑證] 頁面。

  2. 在 [攜帶您自己的憑證 (.pfx)] 底下,選取已匯入金鑰保存庫憑證的 [...] 按鈕,然後選取 [同步處理]

常見問題集

如何將將自備憑證新增至應用程式的程序自動化?

我是否可以在應用程式上使用私人 CA 憑證進行輸入 TLS?

您可以在 App Service Environment 第 3 版中使用私人證書授權中心(CA)憑證作為入站 TLS。 在 App Service (多租戶) 中無法執行此操作。 如需 App Service 多租使用者與單一租使用者的詳細資訊,請參閱 App Service Environment v3 和 App Service 公用多租用戶比較

是否可以從應用程式使用私人 CA 用戶端憑證進行輸出呼叫?

只有多租使用者 App Service 中的 Windows 容器應用程式才支援這項功能。 您可以使用私人 CA 用戶端憑證搭配 App Service Environment 第 3 版中的程式代碼型和容器型應用程式進行輸出呼叫。 如需 App Service 多租使用者與單一租使用者的詳細資訊,請參閱 App Service Environment v3 和 App Service 公用多租用戶比較

我可以在 App Service 信任的根存放區中載入私人 CA 憑證嗎?

您可以將自己的 CA 憑證載入 App Service Environment 第 3 版中受信任的根存放區。 您無法修改 App Service(多重租用)中受信任的根證書清單。 如需 App Service 多租使用者與單一租使用者的詳細資訊,請參閱 App Service Environment v3 和 App Service 公用多租用戶比較

App Service 憑證可以用於其他服務嗎?

是的。 您可以匯出並使用 App Service 憑證搭配 Azure 應用程式閘道或其他服務。 如需詳細資訊,請參閱部落格文章 建立 App Service 憑證的本機 PFX 複本