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

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

您可以將部署 Azure DevOps Server 的安全性設定為使用超文本傳輸通訊協定安全 (HTTPS) 與安全套接字層 (SSL) ,來加強其安全性。 除了預設通訊協定 (HTTP) 之外,您還可以選擇需要此通訊協定 (可將部署的安全性最大化),或選擇支援搭配 SSL 使用 HTTPS。 如果您使用 Release Management for Visual Studio 2013,則雖然您無法將其設為支援 HTTP 以及 HTTPS 皆可搭配 SSL 使用,仍然可以將其設為搭配 SSL 使用 HTTPS。

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

本主題內容

除了 HTTP 以外還支援搭配 SSL 使用 HTTPS 的優點

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

  • 您可以將用戶端電腦設定為搭配 SSL 使用 HTTPS,讓您的部署安全性依照排程的可行性隨著時間增加。 如果採取階段式方法,就不必同時升級所有電腦,而電腦尚未升級的使用者仍然可以連接到部署。

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

  • 透過 HTTP 從某個 Web 服務呼叫另一個 Web 服務比透過搭配 SSL 使用 HTTPS 更快。 因此,如果用戶端電腦對於效能要求的重要程度高於安全性風險,您可以繼續支援來自這種用戶端電腦的 HTTP 連接。

所有連接都需要搭配 SSL 使用 HTTPS 的優點

如果所有連接都需要搭配 SSL 使用 HTTPS,則可提供下列優點:

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

  • 您可以設定憑證在某個專案階段的預期結束時間到期,以便更容易控制存取。

支援或需要搭配 SSL 使用 HTTPS 的缺點

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

  • 您可能會使進行中的管理工作更為複雜。 例如,您可能必須將您的部署重新設定為停止搭配 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 部署的外部連線,您也必須在 Internet Information Services (IIS) 中啟用基本身份驗證、摘要式驗證或兩者。

遵循本主題的程序,您將完成下列工作:

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

  2. 安裝及指派憑證。

  3. 設定 Azure DevOps Server。

  4. 設定 Team Foundation Build。

  5. 設定 Release Management for Visual Studio 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 群組。

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

  • 如果您的部署使用報表功能,您就必須是系統管理安全性群組的成員,或是擁有個別設定的相等權限,才能設定 Reporting Services。

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

假設

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

  • 資料層伺服器和應用程式層伺服器已安裝並部署於安全的環境下,並且根據安全性最佳做法進行設定。

  • 您對於 PKI 的設定與管理方式以及要求、發出和指派憑證很熟悉。

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

取得憑證

設定 Azure DevOps Server 使用 HTTPS 與 SSL 之前,您必須先取得並安裝部署中伺服器的伺服器證書。 若要取得伺服器憑證,您必須安裝及設定自己的憑證授權單位,或是必須使用來自您所信任之外部組織的憑證授權單位 (協力廠商憑證)。

如需如何安裝憑證授權單位的詳細資訊,請參閱 Microsoft 網站上的下列主題:

要求、安裝及設定具有憑證的網站

在登記憑證授權單位之後,您必須使用 IIS 管理員要求憑證,或是在您的部署中以下的每部伺服器上手動安裝憑證:

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

此外,部署中的用戶端電腦必須在憑證鏈結中註冊並要求所需的憑證。 如果您使用 Release Management,則包括任何執行 Release Management 用戶端的電腦,以及發行環境中任何執行部署代理程式的用戶端¹。 如果您的一個或多個專案使用 Git 進行版本控制,這些專案的使用者也必須在他們的電腦上設定 Git,以辨識和使用用戶端憑證。 如需如何向特定的 CA 要求用戶端憑證的詳細資訊,請參閱該憑證授權單位的說明文件。

¹ 這裡分別稱為用戶端和伺服器,但這只是本文件的慣例。 任何執行部署代理程式的電腦都需要安裝憑證。

  1. 開啟 [Internet Information Services (IIS) 管理員] 。

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

    開啟 IIS 管理員並要求憑證

    建立要求,然後加以完成

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

  3. 匯入憑證。

  4. 現在您必須設定每一個需要此憑證的網站,使其具有適當設定 (但 Release Management 網站例外,您稍後才需要對其進行設定)。 具體來說,您需要為下面這幾個網站進行設定:

    • 預設網站
    • Azure DevOps Server
    • 如果您的部署使用 Proxy) ,Azure DevOps Server Proxy (

    在裝載您想要設定之網站的每部伺服器上,開啟 Internet Information Services (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) Connections

提示

如果您的部署不使用報告,就可以略過此程序。

設定 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. 在沒有裝載應用程式層的電腦上,開啟 Web 瀏覽器然後巡覽至小組首頁。

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

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

將您的部署設定為需要具有 SSL 的 HTTPS (選擇性)

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

若需要 SSL 連接

  1. 在裝載您要設定之網站的伺服器上,選擇 [ 開始]、選擇 [ 系統管理工具],然後選擇 [ Internet Information Services (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,以及組建組態支援的集合。 您必須在您的部署中為每個組建組態設定這個 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. 在瀏覽器視窗中開啟下列資料夾:

    Drive:\Users\UserName\AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. 刪除 Cache 目錄的內容。 確定您已刪除所有子資料夾。

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

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

    注意

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

若要將用戶端電腦連接到已重新設定的部署

設定 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 驗證,請考慮下載並安裝適用於 Git 的 Windows 認證存放區

若要設定 Git 的憑證存放區

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

  • 根據上述說明,確認電腦上已安裝並設定必要的憑證。

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

  • 建立 Git 根憑證存放區的私用複本,然後將它加入至您的存放區的私用使用者複本。