共用方式為


為 Azure DevOps 內部部署設定具有安全套接字層 (SSL) 的 HTTPS

Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019

您可以將 Azure DevOps Server 部署設定為使用超文字傳輸通訊協定安全 (HTTPS) 與安全套接字層 (SSL) 來強化部署的安全性。 您可以選擇要求此通訊協定,以最大化部署的安全性,或者除了預設通訊協定 HTTP 之外,您也可以選擇支援 HTTPS 與 SSL。 如果您使用 Visual Studio Release Management 2013,您也可以將它設定為搭配 SSL 使用 HTTPS,不過您無法將它設定為同時支援 HTTP 和 HTTPS 與 SSL。

選擇組態之前,請先檢閱這裡所述的優點和缺點。 在您找出最符合組織安全性需求的組態之後,請遵循本主題中的步驟來設定您的部署。

本主題內容

除了 HTTP 之外,還支援 HTTPS 與 SSL 的優點

如果您將 Azure DevOps Server 部署設定為支援這兩種通訊協定,則電腦已針對 HTTPS 設定且 SSL 的使用者將會使用該通訊協定進行連線,讓您的部署更安全。 此外,計算機設定為 HTTP 的使用者仍然可以連線到您的部署。 雖然您不應該透過公用網路部署此組態,但您可以繼續在受控制的網路環境中支援 HTTP 連線,以取得下列優點:

  • 您可以藉由將 HTTPS 的用戶端電腦設定為 SSL 作為排程允許,來增加一段時間的部署安全性。 如果您採用階段式方法,則不需要同時升級所有計算機,且尚未升級計算機的使用者仍可連線到部署。

  • 您可以更輕鬆地設定及維護 Azure DevOps Server。

  • 從一個 Web 服務到另一個 Web 服務的呼叫比使用 SSL 的 HTTPS 更快。 因此,您可以從效能需求超過安全性風險的用戶端計算機,繼續支援 HTTP 連線。

針對所有連線要求具有 SSL 的 HTTPS 的優點

如果您需要所有連線的 HTTPS 搭配 SSL,您會獲得下列優點:

  • 應用層、數據層和 Azure DevOps 用戶端層之間的所有 Web 連線都更安全,因為它們需要憑證。

  • 您可以藉由將憑證設定為預期專案階段結束時到期,以更輕鬆地控制存取權。

使用 SSL 支援或要求 HTTPS 的缺點

設定 Azure DevOps Server 以支援或要求 HTTPS 搭配 SSL 之前,您應該考慮下列缺點:

  • 您可能會使進行中的系統管理工作複雜化。 例如,您可能需要重新設定部署,以停止使用 SSL 支援 HTTPS,才能套用 Service Pack 或其他更新。

  • 您不僅必須設定,還必須管理證書頒發機構單位 (CA) 和憑證信任。 您可以在 Windows Server 2003 和 Windows Server 2008 中使用憑證服務,但您可能不想投資部署安全公鑰基礎結構 (PKI) 所需的時間和資源。

  • 您必須花大量時間設定和測試這其中一個設定,而且您的部署疑難解答會變得更加困難。

  • 如果您繼續支援這兩種通訊協定,如果未適當保護 Azure DevOps 應用層,則外部連線可能無法加密。

  • 如果您需要使用 SSL 的 HTTPS,部署的效能將會變慢。

將您的部署設定為支援或要求使用 SSL 的 HTTPS

本主題中的程式描述在 Azure DevOps Server 中要求、發行和指派 SSL 連線所需的憑證的一個程式。 如果您使用與本主題描述不同的軟體,您可能需要執行不同的步驟。 若要支援 Azure DevOps Server 部署的外部連線,您也必須在 網際網路資訊服務 (IIS) 中啟用基本身份驗證、摘要式驗證或兩者。

依照本主題中的程式,您將完成下列工作:

  1. 取得 Azure DevOps Server 部署的憑證及其使用的網站。

  2. 安裝並指派憑證。

  3. 設定 Azure DevOps Server。

  4. 設定 Team Foundation Build。

  5. 設定 Visual Studio Release Management 2013

  6. 設定用戶端電腦。

必要條件

若要執行本主題中的程式,您必須先符合下列需求:

  • Azure DevOps 的數據和應用層中的邏輯元件必須安裝,不過在 Azure DevOps Server 本身的情況下,不一定設定。 這些層包括 IIS、SQL Server,以及您可能已整合的任何其他元件,例如 Team Foundation Build 和 SQL Server Reporting Services。

    本主題中的程式是指在 Azure DevOps 的應用程式和資料層中執行邏輯元件的伺服器或伺服器。 應用程式和數據層可能會在同一部伺服器或多部伺服器上執行,如 Azure DevOps Server 安裝指南中所述

  • 您必須擁有證書頒發機構單位(CA),才能發行憑證,或已訂閱具有受信任鏈結的第三方認證授權單位。 本主題假設您使用憑證服務作為 CA,但您可以使用您已針對部署設定的任何 CA,或來自信任的第三方證書頒發機構單位的憑證。 如果您沒有證書頒發機構單位,您可以安裝憑證服務並設定一個。 如需詳細資訊,請參閱Microsoft網站上的下列其中一組檔:

  • 您必須是系統管理員,才能設定 HTTPS 和 SSL 部署的所有元件。 如果您在不同人員具有個別元件系統管理許可權的分散式部署中工作,您必須與這些人協調以完成設定。

  • 具體來說,您必須屬於 Team Foundation Administrators 群組,而且您必須屬於 應用層、數據層和 Team Foundation 的 Azure DevOps Proxy 伺服器或伺服器上的 Administrators 群組。

  • 若要設定組建伺服器,您必須屬於 該伺服器上的 Administrators 群組。

  • 若要設定發行管理,您必須屬於裝載發行管理伺服器的伺服器上的 Administrators 群組,而且是發行管理中發行管理員角色的成員

  • 如果您的部署使用報告,您必須是系統管理安全組的成員,或具有個別設定 Reporting Services 的對等許可權。

    如需許可權的詳細資訊,請參閱 Azure DevOps Server 的許可權參考。

假設

本主題中的程序假設下列條件成立:

  • 數據層和應用層伺服器或伺服器已安裝並部署在安全的環境中,並根據安全性最佳做法進行設定。

  • 您已熟悉如何設定和管理 PKIs,以及要求、發行和指派憑證。

  • 您具備開發環境網路拓撲的工作知識,且熟悉設定網路設定、IIS 和 SQL Server。

取得憑證

在將 Azure DevOps Server 設定為搭配 SSL 使用 HTTPS 之前,您必須取得並安裝部署中伺服器的伺服器證書。 若要取得伺服器證書,您必須安裝及設定自己的證書頒發機構單位,或者您必須從信任的外部組織使用證書頒發機構單位(第三方憑證)。

如需如何安裝證書頒發機構單位的詳細資訊,請參閱Microsoft網站上的下列主題:

使用憑證要求、安裝和設定網站

在證書頒發機構單位中登記之後,您必須使用 IIS 管理員要求憑證,或者您必須在部署中的每個伺服器上手動安裝憑證:

  • 每個應用層伺服器。
  • 如果已針對部署設定任何伺服器,則執行 Azure DevOps Proxy 伺服器的每個伺服器。
  • 如果已針對您的部署設定任何伺服器,則執行Team Foundation Build Service 作為組建控制器或組建代理程式的每個伺服器。
  • 如果已針對您的部署設定伺服器,則為執行 Reporting Services 的伺服器。

此外,部署中的用戶端計算機必須在憑證鏈結中註冊,並要求所需的憑證。 如果您使用發行管理,這包括任何執行發行管理客戶端的計算機,以及任何在發行環境中執行部署代理程式的用戶端。 如果您的一或多個專案使用 Git 進行版本控制,這些專案中的使用者也必須在其電腦上設定 Git,才能辨識及使用用戶端憑證。 如需如何向特定 CA 要求用戶端憑證的詳細資訊,請參閱該證書頒發機構單位的檔。

會在這裡另外呼叫用戶端和伺服器,但這只是本檔的慣例。 執行部署代理程式的任何計算機都需要安裝憑證。

  1. 開啟 [網際網路資訊服務 (IIS) 管理員]

  2. 展開您的伺服器,流覽至 [伺服器憑證],然後建立並完成您的憑證要求。

    開啟 IIS 管理員並要求憑證

    建立要求,然後完成要求

    如需詳細資訊,請參閱 在 IIS 中設定伺服器證書。

  3. 匯入憑證 (部分機器翻譯)。

  4. 現在,您需要設定每個需要此憑證且具有適當設定的網站(除了發行管理網站之外,您稍後將進行設定)。 具體而言,您必須針對下列每個網站執行此動作:

    • 默認網站
    • Azure DevOps Server
    • Azure DevOps Server Proxy(如果您的部署使用它)

    在裝載您要設定之網站的每部伺服器上,開啟 網際網路資訊服務 (IIS) 管理員

  5. 序展開 [ComputerName]、[月臺]、開啟您要設定之網站的子功能表(例如 Azure DevOps Server),然後從 [動作] 窗格中選擇 [系結]。

    您必須為所有網站設定系結

  6. [網站系結] 中,選擇 [ 新增]。

    [新增站台繫結] 對話方塊隨即出現。

  7. 在 [ 類型 ] 清單中,選擇 [https]。

    [埠] 中,輸入不同的埠號碼。

    重要

    SSL 連線的預設埠號碼為 443,但您必須為每個下列網站指派唯一的埠號碼:默認網站、Azure DevOps Server 和 Azure DevOps Server Proxy(如果您的部署使用的話)。 您應該記錄您所設定之每個網站的 SSL 連接埠號碼。 您必須在 Azure DevOps 的管理控制台中指定這些數位。

    [SSL 憑證] 中,選擇您匯入的憑證,然後選擇 [ 確定 ] 並關閉 [系結] 頁面。

    請務必選擇唯一的埠號碼

  8. 在您 設定之網站的 [首頁 ] 頁面上,開啟 [ 功能 ] 檢視。

  9. 在 [IIS] 底下,選擇 [驗證]。

  10. 選擇您想要設定的驗證方法、開啟其子功能表,然後在方法上啟用、停用或執行其他設定,最符合您的安全性需求。 例如,如果您想要停用匿名驗證,您可以選擇 [匿名驗證] 方法,然後從 [動作] 功能表選擇 [停用]。

    選擇 方法,然後選擇要執行的動作

  11. 完成設定之後,請重新啟動 Web 服務。

設定防火牆

您必須設定防火牆,以允許流量通過您剛才在 IIS 中指定的 SSL 埠。 如需詳細資訊,請參閱防火牆的檔。

重要

請務必測試您從另一部計算機指定的埠上的流量。 如果您無法存取默認網站或入口網站,請仔細檢查您在 IIS 中為這些網站指定的埠設定,並確定防火牆已正確設定為允許這些埠上的流量。

設定 SQL Server Reporting Services

如果您的部署使用報告,您必須設定 SQL Server Reporting Services 以支援具有 SSL 的 HTTPS,並使用您在 IIS 中為 Azure DevOps Server 指定的埠。 否則,報表伺服器將無法針對您的部署正確運作。 如需詳細資訊,請參閱 設定報表伺服器以進行安全套接字層 (SSL) 連線

提示

如果您的部署未使用報告,您可以略過此程式。

設定 Azure DevOps Server 的 HTTPS

請遵循下列步驟,使用您在 IIS 中為預設和 Azure DevOps Server 網站設定的 HTTPS 連接埠和值來設定 Azure DevOps Server 部署。

若要重新設定 Azure DevOps Server 以使用或要求 HTTPS

  1. 開啟 Azure DevOps 的管理主控台,並瀏覽至應用層節點。

  2. [應用層摘要] 中,選擇 [變更 URL]。

    [ 變更 URL] 視窗隨即開啟。

  3. 在 [ 通知 URL] 中,輸入您在 IIS 中為 Azure DevOps Server 網站設定的 HTTPS URL。

    例如,您可能已將網站設定為使用埠 444。 在此情況下,您會輸入 https:// ServerName:444/tfs。 請確定您使用伺服器的完整功能變數名稱,而不是localhost。

    在位址中指定 HTTPS、伺服器和埠

  4. 選擇 [ 測試]。 如果測試未通過,請勿選擇 [確定 ]。 返回並確定您輸入正確的 URL 和埠資訊、所有防火牆都已設定為允許這些埠上的流量,以及月臺可在 IIS 管理員中執行。

  5. 若要要求 HTTPS,請選擇 [在伺服器 URL 中使用],然後輸入您為 Azure DevOps Server 網站設定的 HTTPS URL。

    請確定您使用伺服器的完整功能變數名稱,而不是localhost。

  6. 選擇 [ 測試],然後在測試通過時選擇 [ 確定 ]。

  7. 如果您的部署使用 Reporting Services,請在管理控制台 中選擇 [報告]。 否則,請略過此程序的其餘部分。

  8. 在 [ 報告] 中,選擇 [ 編輯]。

    如果 [ 離線] 對話框開啟,請選擇 [ 確定]。

    [ 報告] 視窗隨即開啟。

  9. 選擇 [報表] 索引標籤。在報表伺服器的 URL 中,輸入 Web 服務和報表管理員HTTPS URL,然後選擇 [確定]。

測試部署的存取權

您應該測試您的變更是否如預期般運作。 這個步驟是選擇性的,但強烈建議您使用。

測試部署的存取權

  1. 在未裝載應用層的計算機上,開啟網頁瀏覽器並流覽至小組首頁。

  2. 確認您是否可以從入口網站存取您的小組和專案,包括系統管理頁面。

  3. 如果您無法透過入口網站存取部署,請檢閱您剛完成的步驟,並確定您已正確進行所有設定變更。

將您的部署設定為使用 SSL 要求 HTTPS (選擇性)

您可以要求所有連線到 Azure DevOps Server 應用層,才能搭配 SSL 使用 HTTPS。 這個額外的安全性是選擇性的,但建議使用。

若要要求 SSL 連線

  1. 在裝載您要設定之網站的伺服器上,選擇 [啟動],選擇 [系統管理工具],然後選擇 [網際網路資訊服務 [IIS] 管理員

  2. 請遵循 IIS 版本的適當步驟:

    對於使用 IIS 7.0 的部署:

    1. 依序展開 [ComputerName]、[ 網站],然後選擇您要設定的網站。

    2. 在該網站的首頁上,選擇 [ SSL 設定]。

    3. 在 [ SSL 設定] 窗格中,選取 [ 需要 SSL ] 複選框。

      (選擇性)選取 [ 需要 128 位 SSL ] 複選框。

    4. 在 [用戶端憑證] 中,根據部署的安全性需求,選擇 [忽略]、[接受] 或 [需要]。

    5. 在 [ 動作] 中,選擇 [ 套用]。

    6. 針對您想要要求 SSL 的每個網站重複這些步驟。

在組建伺服器上安裝憑證

如果您在一或多部伺服器上安裝 Team Foundation Build Service,則必須在每部伺服器的受信任跟證書授權單位存放區中安裝憑證。 如需詳細資訊,請參閱本主題稍早使用憑證取得憑證和要求、安裝和設定網站。 控制器和代理程式都需要具有私鑰的憑證,才能在 HTTPS 連線中識別自己。

注意

若要透過 SSL 執行組建,憑證必須安裝在組建控制器和組建代理程式的受信任根存放區中。

更新組建組態

若要設定 Team Foundation Build for SSL 連線,您必須設定組建服務,才能使用您為應用層所設定的 HTTPS URL,以及組建組態支援的集合。 您必須針對部署中的每個組建組態設定此網址。

若要變更組建組態以使用 HTTPS

  1. 在裝載您想要設定之組建組態的伺服器上,開啟Team Foundation的管理控制台。

  2. [Team Foundation] 底下,展開伺服器的名稱,然後選擇 [ 建置組態]。

    [建置 組態 ] 窗格隨即出現。

  3. 在服務組態下,選擇 [ 停止],然後選擇 [ 屬性]。

    [ 建置服務屬性 ] 對話框隨即開啟。

  4. [通訊] 中,確定專案集合的 URL 使用正確的 HTTPS 位址和完整伺服器名稱。

  5. 在 [ 本機建置服務端點][傳入] 中,選擇 [ 變更]。

    [ 建置服務端點] 對話框隨即開啟。

  6. [端點詳細數據] 中,確認埠號碼符合您的組態詳細數據。

  7. 在 [ 通訊協定] 中,選擇 [HTTPS]。

  8. 在 [ SSL 憑證 ] 清單中,選擇您安裝並設定要用於此部署的憑證,然後選擇 [ 確定]。

    確定組態詳細數據相符

  9. 在 [ 建置服務屬性 ] 對話框中,選擇 [ 啟動]。

設定客戶端電腦

在使用者存取 Azure DevOps 的每部用戶端電腦上,您必須在本機安裝憑證,並清除已從該電腦存取 Azure DevOps 的任何使用者用戶端快取。 否則,使用者將無法從該計算機連線到 Azure DevOps。 如需詳細資訊,請參閱 管理受信任的跟證書

重要

針對執行 Azure DevOps Server 和一或多個 Azure DevOps 用戶端的電腦,請勿遵循此程式。

在用戶端電腦上安裝憑證

  1. 使用屬於 該電腦上 Administrators 群組的 帳戶登入計算機。

  2. 將憑證安裝到本機計算機的 [受信任的跟證書授權單位] 資料夾中。

清除客戶端電腦上的快取

  1. 使用您要清除其快取的使用者認證登入計算機。

  2. 關閉 Visual Studio 的任何開啟實例。

  3. 在瀏覽器視窗中,開啟下列資料夾:

    磁碟驅動器 :\Users\ UserName \AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. 刪除快取目錄的內容。 請確定您刪除所有子資料夾。

  5. 選擇 [開始]、選擇 [執行]、輸入 devenv /resetuserdata,然後選擇 [確定]。

  6. 針對已從該計算機存取 Team Foundation 之每位使用者的帳戶重複這些步驟。

    注意

    您可能想要將清除快取的指示散發給所有 Azure DevOps 使用者,讓他們可以自行清除快取。

將用戶端電腦連線到重新設定的部署

  • 在 Visual Studio 中,使用新的 HTTPS URL 連線到 Azure DevOps Server。

    如需詳細資訊,請參閱 連線到 Azure DevOps Server 中的專案。

設定 Git

根據預設,使用 Git 進行版本控制的專案將無法驗證您為 Azure DevOps Server 設定的 SSL 憑證。 這是因為與 Azure DevOps Server 和 Visual Studio 不同,Git 無法辨識 Windows 證書存儲。 相反地,它會針對其證書存儲使用 OpenSSL。 若要針對以 SSL 設定的專案使用 Git 存放庫,您必須在 TFS 2013 部署的憑證鏈結根目錄設定 Git。 這是僅適用於 Git 存放庫專案的客戶端設定工作。

如需 Git 網路作業如何在 Visual Studio 2013 中運作的詳細資訊,請參閱此 部落格文章

提示

對於其他 Git 認證管理工作,例如 Windows 驗證,請考慮下載並安裝適用於 GitWindows 認證存放區。

設定 Git 的證書存儲

  • 使用屬於 該電腦上 Administrators 群組的 帳戶登入計算機。

  • 請確定計算機上已安裝並設定必要的憑證,如上所述。

  • 在支援的網頁瀏覽器中,將 Azure DevOps Server 跟證書擷取為 base64 編碼的 X.509 CER/PEM 檔案。

  • 建立 Git 跟證書儲存的私人複本,並將該複本新增至存放區的私人用戶複本。