設定 Team Foundation Server 使用 HTTPS 搭配 Secure Sockets Layer (SSL)
您可以設定用來搭配 Secure Sockets Layer (SSL) 使用安全超文字傳輸通訊協定 (HTTPS) 的服務,來加強 Visual Studio Team Foundation Server 部署的安全性。 除了預設通訊協定 (HTTP) 之外,您還可以將您的部署設定為需要使用 HTTPS 通訊協定 (可將部署的安全性最大化),或設定為需要搭配 SSL 使用 HTTPS。 在您選擇組態之前,應該要先仔細檢閱本主題所述的優缺點。 在找出最符合您組織安全性需求的組態之後,請遵循本主題中的步驟來設定您的部署。
本主題內容
概念資訊
除了 HTTP 以外還支援搭配 SSL 使用 HTTPS 的優點
所有連接都需要搭配 SSL 使用 HTTPS 的優點
支援或需要搭配 SSL 使用 HTTPS 的缺點
必要條件
假設
伺服器組態
取得憑證
要求憑證
安裝及指派憑證
設定防火牆
設定 SQL Server Reporting Services
將您的部署設定為除了 HTTP 以外還支援搭配 SSL 使用 HTTPS
選擇性組態工作
測試對部署的存取 (選擇性)
將您的部署設定為需要搭配 SSL 使用 HTTPS (選擇性)
組建組態
在組建伺服器上安裝憑證
更新組建組態
用戶端組態
- 設定用戶端電腦
除了 HTTP 以外還支援搭配 SSL 使用 HTTPS 的優點
如果您將您的 TFS 部署設定為支援兩種通訊協定,則在電腦上已設定搭配 SSL 使用 HTTPS 的使用者將會以 HTTPS 通訊協定進行連接,該通訊協定可讓您的部署更安全。 另外,在電腦上已設定只使用 HTTP 的使用者仍然可以連接到您的部署。 雖然您不應該在公用網路上部署此組態,但是在受控制的網路環境下繼續支援 HTTP 連接,還是可提供下列優點:
您可以將用戶端電腦設定為搭配 SSL 使用 HTTPS,讓您的部署安全性依照排程的可行性隨著時間增加。 如果採取階段式方法,就不必同時升級所有電腦,而電腦尚未升級的使用者仍然可以連接到部署。
您可以更輕鬆地設定及維護 Team Foundation Server。
透過 HTTP 從某個 Web 服務呼叫另一個 Web 服務比透過搭配 SSL 使用 HTTPS 更快。 因此,如果用戶端電腦對於效能要求的重要程度高於安全性風險,您可以繼續支援來自這種用戶端電腦的 HTTP 連接。
所有連接都需要搭配 SSL 使用 HTTPS 的優點
如果所有連接都需要搭配 SSL 使用 HTTPS,則可提供下列優點:
Team Foundation 資料層、應用程式層和用戶端層之間的所有 Web 連接都更為安全,因為它們需要憑證。
您可以設定憑證在某個專案階段的預期結束時間到期,以便更容易控制存取。
支援或需要搭配 SSL 使用 HTTPS 的缺點
在您將 TFS 設定為支援或需要搭配 SSL 使用 HTTPS 之前,應注意下列缺點:
您可能會使進行中的管理工作更為複雜。 例如,您可能必須將您的部署重新設定為停止搭配 SSL 使用 HTTPS,才能套用 Service Pack 或其他更新。
您不僅要設定憑證授權單位 (CA) 和憑證信任,而且還要加以管理。 您可以使用 Windows Server 2003 和 Windows Server 2008 中的憑證服務,但是您可能不會想要投入部署安全的公開金鑰基礎架構 (PKI) 所需的時間和資源。
您必須投入許多時間設定及測試上述任一組態,而使得疑難排解您的部署更為困難。
如果繼續支援兩種通訊協定,當 Team Foundation 應用程式層不具有適當安全性時可能不會加密外部連接。
如果需要搭配 SSL 使用 HTTPS,您的部署效能會變很低。
將您的部署設定為支援或需要搭配 SSL 使用 HTTPS
本主題的程序將說明一項程序,以便在 Team Foundation Server 中要求、發出及指派 SSL 連接所需的憑證。 如果您使用的軟體與本主題所述的不同,您可能需要執行其他步驟。 為了支援 TFS 部署的外部連接,您也必須在 Internet Information Services (IIS) 中啟用基本驗證、摘要式驗證或者兩個都要。
遵循本主題的程序,您將完成下列工作:
取得 Team Foundation Server 部署使用的憑證及使用的網站。
安裝及指派憑證。
設定 Team Foundation Server。
設定 Team Foundation Build。
設定用戶端電腦。
必要條件
若要執行本主題的程序,您必須先符合以下需求:
Team Foundation 資料層和應用程式層的邏輯元件必須安裝且可以運作。 上述層包含 IIS、SQL Server、SharePoint 產品、Team Foundation Build 和 SQL Server Reporting Services (如果您的部署包含這件元件)。 本主題的程序會將在 Team Foundation 應用程式層執行邏輯元件的伺服器稱為 Team Foundation 應用程式層伺服器。 本主題的程序會將在 Team Foundation 資料層執行邏輯元件的伺服器稱為 Team Foundation 資料層伺服器。 應用程式層和資料層必須執行於同一部伺服器或多部伺服器上。 如需詳細資訊,請參閱安裝 Team Foundation Server 和 Visual Studio ALM。
您必須有憑證授權單位 (CA),才能從中發行憑證。 本主題假設您是使用憑證服務當做您的 CA,但您可以使用任何已為部署設定的 CA。 如果您沒有憑證授權單位,可以安裝憑證服務並設定一個憑證授權單位。 如需詳細資訊,請參閱 Microsoft 網站上的下列其中一個文件集:
適用於 Windows Server 2003:憑證服務 (英文)
適用於 Windows Server 2008:Active Directory 憑證服務和公開金鑰管理 (英文)
必要的使用權限
您必須屬於 [Team Foundation Administrators] 群組,而且屬於 Team Foundation 應用程式層和資料層伺服器的 [Administrators] 群組,才能完成這些程序。 您必須屬於組建伺服器的 [Administrators] 群組,才能設定該伺服器。 如果您的部署使用 SharePoint 產品,您必須屬於裝載 SharePoint 管理中心之伺服器的 [Administrators] 群組。 您也必須屬於 [Farm Administrators] 群組。 如需使用權限的詳細資訊,請參閱 Team Foundation Server 使用權限。
假設
本主題的程序假設下列條件皆成立:
資料層伺服器和應用程式層伺服器已安裝並部署於安全的環境下,並且根據安全性最佳做法進行設定。
您對於 PKI 的設定與管理方式以及要求、發出和指派憑證很熟悉。 如需詳細資訊,請參閱下列 Microsoft 網站的網頁:公開金鑰基礎結構 (英文)。
您對於部署環境的網路拓撲擁有實作經驗,而且對於如何設定網路設定、IIS 和 SQL Server 很熟悉。
取得憑證
在您將 TFS 設定為搭配 SSL 使用 HTTPS 之前,必須為您的部署中的伺服器取得及安裝伺服器憑證。 若要取得伺服器憑證,您必須安裝及設定自己的憑證授權單位,或是使用來自您所信任之外部組織的憑證授權單位。
如需如何安裝憑證授權單位的詳細資訊,請參閱 Microsoft 網站上的下列主題:
適用於 Windows Server 2003:憑證服務 (英文)
適用於 Windows Server 2008:Active Directory 憑證服務和公開金鑰管理 (英文)
要求憑證
在登記憑證授權單位之後,您必須使用 IIS 管理員要求憑證,或是在您的部署中以下的每部伺服器上手動安裝憑證:
每個應用程式層伺服器。
每個執行 Team Foundation Server Proxy 的伺服器 (如果您的部署已設定任一伺服器)。
每個以組建控制器或組建代理程式方式執行 Team Foundation Build Service 的伺服器 (如果您的部署已設定任一伺服器)。
每個執行 SharePoint 產品的伺服器 (如果您的部署已設定 SharePoint 產品)。
執行 Reporting Services 的伺服器 (如果您的部署已設定這部伺服器)。
若要在 IIS 中要求憑證
依序選擇 [開始]、[系統管理工具] 和 [Internet Information Services (IIS) 管理員]。
展開 [網站] 或 [站台] 節點,然後巡覽至您希望要求憑證的網站。
例如,如果要求應用程式層伺服器的憑證,必須巡覽至 [Team Foundation Server]。 如果要求 Proxy 伺服器的憑證,必須巡覽至 [Microsoft Team Foundation Server Proxy]。
遵循適合您 IIS 版本的指示,要求或建立符合您組織安全性需求的伺服器憑證:
如果使用 IIS 7.0,請準備 IIS 7.0 的伺服器憑證、指定要求的名稱、下載憑證,並將其儲存到伺服器上的安全位置。
如需詳細資訊,請參閱在 IIS 7.0 中設定伺服器憑證 (英文)。
安裝及指派憑證
您必須在 TFS 使用的網站上安裝伺服器憑證,才能搭配 TFS 使用 SSL,例如下列清單中的網站:
預設網站
Team Foundation Server
Microsoft Team Foundation Server Proxy
SharePoint 管理中心
在安裝憑證之後,您必須明確將它繫結或指派至每個網站,啟用要用於每個網站的驗證方法,然後為每個網站設定 HTTPS。
根據部署組態而定,您可能需要在一部以上的電腦上安裝及設定憑證。 例如,您的部署可能在與應用程式層伺服器不同的電腦上有 Team Foundation Build 和 SharePoint 產品。 在這種情況下,您不僅要在裝載 SharePoint 產品的伺服器上安裝及設定伺服器憑證,也要在裝載組建控制器和組建代理程式的電腦上這麼做。
安裝伺服器憑證
遵循下列步驟,您將安裝要用於 TFS 部署的伺服器憑證。
若要在網站上安裝伺服器憑證
在裝載您要設定之網站的伺服器上,依序選擇 [開始]、[系統管理工具] 和 [Internet Information Services (IIS) 管理員]。
執行適合您 IIS 版本的步驟:
如果使用 IIS 7.0,請從 [伺服器憑證] 窗格匯入伺服器憑證。
如需詳細資訊,請參閱匯入伺服器憑證 (IIS 7) (英文)。
啟用驗證方法、啟用 HTTPS 和為部署使用的網站指定憑證
遵循下列步驟,您可以設定要使用的驗證方法,並在 IIS 中為部署使用的網站啟用 HTTPS。 這些網站可能裝載於不同伺服器上。 您必須在每個您在上一個程序中設定的網站上執行這些步驟。
在設定 HTTPS 之後,您還可以從每個設定的網站之繫結清單中移除 HTTP,為您的部署提供防護。
視您的憑證階層架構和公開金鑰基礎結構而定,您也必須設定 IIS,以進行用戶端憑證驗證。 如需詳細資訊,請參閱憑證服務和憑證。
SharePoint 產品部署可能需要其他組態 (例如備用存取對應和表單驗證),才能與 HTTPS、SSL 和憑證一起正常運作。 如需詳細資訊,請參閱每個 SharePoint 管理員必知的備用存取對應 (英文)、SharePoint 產品和技術中的表單驗證 (英文) 和 SharePoint 產品版本的組態主題。
若要設定 HTTPS 並指定憑證
在裝載您要設定之網站的伺服器上,依序選擇 [開始]、[系統管理工具] 和 [Internet Information Services (IIS) 管理員]。
執行適合 IIS 版本的步驟:
對於使用 IIS 7.0 的部署:
依序展開 ComputerName 和 [網站],開啟要設定之網站的子功能表,再選擇 [編輯繫結]。
選擇 [站台繫結] 中的 [新增]。
[新增站台繫結] 對話方塊隨即出現。
選擇 [類型] 清單中的 [https]。
(選擇性) 在 [連接埠] 中輸入不同的連接埠號碼。
重要
SSL 連接的預設連接埠號碼是 443,但是您必須為下列網站分別指派唯一的連接埠號碼:Default Web Site、Team Foundation Server、Microsoft Team Foundation Server Proxy (如果您的部署使用它) 和 SharePoint 管理中心。
您應該為每個設定的網站記錄 SSL 連接埠號碼,因為您將需要在 Team Foundation 的管理主控台指定這些號碼。
在 [SSL 憑證] 中,選擇已匯入的憑證,然後選擇 [確定]。
選擇 [站台繫結] 中的 [關閉]。
在您要設定之網站的 [首頁] 上,開啟 [功能] 檢視。
選擇 [IIS] 底下的 [驗證]。
選擇要設定的驗證方法並開啟其子功能表,然後選擇 [啟用]、[停用] 或 [編輯] 啟用、停用或執行該方法上的其他組態。
設定防火牆
您必須設定防火牆,讓流量可以通過您剛才在 IIS 中指定的 SSL 連接埠。 如需詳細資訊,請參閱防火牆的文件。
設定 SQL Server Reporting Services
如果您的部署使用報告,您必須將 SQL Server Reporting Services 設定為支援搭配 SSL 使用 HTTPS 並使用您在 IIS 中為 Team Foundation Server 指定的連接埠。 否則,部署的報表伺服器將無法正常運作。 如需詳細資訊,請參閱設定安全通訊端層 (SSL) 連接的報表伺服器 (英文)。
提示
如果您的部署不使用報告,就可以略過此程序。
設定您的部署
請遵循下列步驟,將您的部署設定為使用您在 IIS 中為預設網站和 Team Foundation Server 網站設定的 HTTPS 連接埠與值。
若要重新設定 Team Foundation Server
開啟 Team Foundation 的管理主控台。
如需詳細資訊,請參閱開啟 Team Foundation 管理主控台。
在 [Team Foundation] 底下展開伺服器名稱,然後選擇 [應用程式層]。
選擇 [應用程式層摘要] 中的 [變更 URL]。
[變更 URL] 視窗隨即開啟。
在 [通知 URL] 中,輸入您在 IIS 中為 Team Foundation Server 網站設定的 HTTPS URL。
例如,您可能已將網站設定為使用連接埠 443。 這樣的話,您就輸入 https://ServerName:443/tfs。 請確定您使用的是伺服器的完整網域名稱,而不是 localhost。
選擇 [測試],如果測試成功請選擇 [確定]。
若需要 HTTPS,請選擇 [伺服器 URL] 中的 [使用],然後輸入您為 Team Foundation Server 網站設定的 HTTPS URL。
請確定您使用的是伺服器的完整網域名稱,而不是 localhost。
選擇 [測試],如果測試成功請選擇 [確定]。
在任何純文字編輯器 (例如記事本) 中開啟 Team Foundation Server 的 web.config 檔案。 這個檔案預設位於下列目錄:%PROGRAMFILES%\Microsoft Team Foundation Server 11.0\Application Tier\Message Queue\web.config。
從這個檔案移除下列端點:
<!-- An empty relative address means the endpoint will pick up the base address of the svc file -->
<endpoint address=""
binding="customBinding"
bindingConfiguration="TfsSoapBinding"
contract="Microsoft.TeamFoundation.Framework.Server.WebServices.MessageQueueWebService" />
<!-- An empty relative address means the endpoint will pick up the base address of the svc file -->
<endpoint address=""
binding="customBinding"
bindingConfiguration="TfsSoapBinding"
contract="Microsoft.TeamFoundation.Framework.Server.WebServices.MessageQueueWebService2" />
巡覽至 [<system.serviceModel>] 區段,並將下列通訊協定對應加入其中:
<protocolMapping>
<remove scheme="http" />
<add scheme="http" binding="customBinding" bindingConfiguration="TfsSoapBinding"/>
<add scheme="https" binding="customBinding" bindingConfiguration="TfsSoapBindingHttps"/>
</protocolMapping>
在相同的 [<system.serviceModel>] 區段中,將下列繫結加入至 <customBinding>:
<binding name="TfsSoapBindingHttps">
<textMessageEncoding messageVersion="Soap12WSAddressing10" />
<httpsTransport authenticationScheme="IntegratedWindowsAuthentication" manualAddressing="true" />
</binding>
儲存並關閉檔案。
如果您的部署使用 SharePoint 產品,請在管理主控台選擇 [SharePoint Web 應用程式]。
在 [SharePoint Web 應用程式] 的 [名稱] 清單中,選擇 Web 應用程式,然後選擇 [變更]。
[SharePoint Web 應用程式設定] 頁面隨即開啟。
在 [Web 應用程式 URL] 中,將 URL 變更為應用程式的 HTTPS 值。
在 [管理中心 URL] 中,將 URL 變更為管理中心網站的 HTTPS 值。
(選擇性) 在 [易記名稱] 中,將值變更以反映應用程式的 HTTPS 位址。
選擇 [確定]。
對您的部署中每個 SharePoint Web 應用程式重複前五個步驟。
如果您的部署使用 Reporting Services,請在管理主控台選擇 [報告]。
選擇 [報告] 中的 [編輯]。
如果 [離線] 對話方塊開啟,請選擇 [確定]。
[報告] 視窗隨即開啟。
選擇 [報表] 索引標籤。 在 [報表伺服器的 URL] 中,為 [Web 服務] 和 [報表管理員] 輸入 HTTPS URL,然後選擇 [確定]。
測試對部署的存取 (選擇性)
您可以測試您的變更是否如預期運作。 這個步驟可省略,但建議使用。
若要測試對部署的存取
在裝載應用程式層的伺服器上,開啟 Web 瀏覽器。
在網址列中輸入您用來透過 Team Web Access 連接到部署的 URL。
注意事項 在 Team Foundation 管理主控台的 [應用程式層] 節點上可以找到這個 URL。
確認您可以從 Team Web Access 存取 Team 專案集合和專案。
如果您無法透過 Team Web Access 存取部署,請檢閱您剛才完成的步驟,確認您已正確變更所有的組態。
將您的部署設定為需要搭配 SSL 使用 HTTPS (選擇性)
您可以要求部署的所有連接都搭配 SSL 使用 HTTPS。 這個額外的安全性可省略,但建議使用。
若需要 SSL 連接
在裝載您要設定之網站的伺服器上,依序選擇 [開始]、[系統管理工具] 和 [Internet Information Services (IIS) 管理員]。
遵循適合您 IIS 版本的步驟:
對於使用 IIS 7.0 的部署:
依序展開 ComputerName 和 [網站],然後選擇要設定的網站。
在該網站的首頁上,選擇 [SSL 設定]。
在 [SSL 設定] 窗格中,選取 [需要 SSL] 核取方塊。
(選擇性) 選取 [需要 128 位元 SSL] 核取方塊。
在 [用戶端憑證] 中,選擇 [略過]、[接受] 或 [需要],視部署的安全性需求而定。
選擇 [動作] 中的 [套用]。
對每個您希望要求 SSL 的網站重複這些步驟。
在組建伺服器上安裝憑證
如果您在一部或多部伺服器上安裝了 Team Foundation Build Service,就必須在每部伺服器的 [受信任的根憑證授權單位] 存放區中安裝憑證。 如需詳細資訊,請參閱本主題稍早的取得憑證和安裝及指派憑證。 控制器和代理程式都需要具有私密金鑰的憑證,用來在 HTTPS 連接中識別本身。
注意事項 |
---|
為了透過 SSL 執行組建,此憑證必須同時安裝在組建控制器和組建代理程式之受信任的根存放區中。 |
更新組建組態
若要為 SSL 連接設定 Team Foundation Build,您必須將組建服務設定為使用您為應用程式層設定的 HTTPS URL,以及組建組態支援的集合。 您必須在您的部署中為每個組建組態設定這個 URL。
若要將組建組態變更為使用 HTTPS
在裝載您要設定之組建組態的伺服器上,開啟 Team Foundation 的管理主控台。
在 [Team Foundation] 底下展開伺服器名稱,然後選擇 [組建組態]。
[組建組態] 窗格隨即出現。
選擇服務組態底下的 [停止],然後選擇 [屬性]。
[組建服務屬性] 對話方塊隨即出現。
在 [通訊] 中,確認 Team 專案集合的 URL 使用的是正確的 HTTPS 位址和完整伺服器名稱。
選擇 [本機組建服務端點 (連入)] 中的 [變更]。
[組建服務端點] 對話方塊隨即開啟。
在 [端點細節] 中,確認連接埠號碼與您的組態詳細資料相符。
選擇 [通訊協定] 中的 [HTTPS]。
在 [SSL 憑證] 清單中,選擇已安裝並設定為與這個部署搭配使用的憑證,然後選擇 [確定]。
選擇 [組建服務屬性] 對話方塊中的 [啟動]。
設定用戶端電腦
在使用者存取 Team Foundation 的每部用戶端電腦上,您必須在本機安裝憑證,並清除任何已從該電腦存取 Team Foundation 之使用者的用戶端快取。 否則,使用者將無法從該電腦連接到 Team Foundation。 如需詳細資訊,請參閱管理受信任的根憑證。
重要
若為執行於 Team Foundation Server 和一個或多個 Team Foundation 用戶端的電腦,請勿遵循此程序。
在用戶端電腦上安裝憑證
使用屬於電腦的 [Administrators] 群組的帳戶登入該電腦。
將憑證安裝到本機電腦的 [受信任的根憑證授權單位] 資料夾。
如需詳細資訊,請參閱您的作業系統和憑證授權單位。
若要清除用戶端電腦上的快取
使用您想要清除其快取之使用者的認證登入電腦。
關閉任何開啟的 Visual Studio 執行個體。
在瀏覽器視窗中開啟下列資料夾:
Drive**:\Users\UserName\AppData\Local\Microsoft\Team Foundation\4.0\Cache**
刪除 Cache 目錄的內容。 確定您已刪除所有子資料夾。
依序選擇 [開始] 和 [執行],然後輸入 devenv /resetuserdata,再選擇 [確定]。
對每個已從該電腦存取 Team Foundation 之使用者的帳戶重複這些步驟。
注意事項 您可能會想要將清除快取的指示散發給所有 Team Foundation 使用者,讓這些使用者自行清除快取。
若要將用戶端電腦連接到已重新設定的部署
在 Visual Studio 中,使用新的 HTTPS URL 連接到 Team Foundation Server。
如需詳細資訊,請參閱在 Team Foundation Server 中連接 Team 專案。
請參閱
其他資源
Securing Team Foundation Server with HTTPS and Secure Sockets Layer (SSL)
Team Foundation Server, HTTPS, and Secure Sockets Layer (SSL)