TFS - 使用自簽憑證與 SSL 對外提供網站服務

02 January 2017 — Written by Sky Chang
#Windows Server#SSL#TFS

注意事項

此版本為 TFS 2017 . !! 重要,基本上使用自簽憑證還是會有風險,所以在正式環境底下,還是建議使用正式的憑證。 !! 注意,這邊只實作 TFS ,如果有需要和 SharePoint、Repoet Service 整合,請參考底下的 MSDN 連結

前言

在 TFS 2017 安裝的時候就已經可以使用精靈來完成自簽憑證與 SSL 提供對外的服務, 而如果已經裝完後哩? 那又該怎麼辦哩,所以這篇我們來看看,如何在安裝完後,還能使用自簽憑證與 SSL 提供對外服務。

開始之前

因為這次會圍繞在憑證上,所以我們必須先知道如何快速地看到我們有哪些憑證, 甚至是管理憑證。

首先,我們可以透過搜尋工具,搜尋 MMC 。

0001

接著,我們可以執行 新增/移除嵌入式管理單元

0002

然後我們選擇憑證,並按下新增。

0003

接下來,按下一步就可以了,完成後,就可以看到目前這台電腦上的所有憑證。

0004

建立憑證

竟然要使用 SSL,自然就要使用憑證嚕,所以我們要先建立憑證。

這邊使用 makecert.exe 來建立,通常這個會在底下路徑, C:\Program Files (x86)\Windows Kits\10\bin\x86 如果沒有的話,就要去安裝 Windows Kits。

如果懶得去找 Windows Kits,或是不想裝那麼大一包,也可以直接將 makecert.exe copy 到 server 上執行。

基本上,我們只需要下以下命令。

makecert -r -pe -n "CN=對外網址" -b 01/01/2016 -e 01/01/2020 -sky exchange -a sha256 -len 2048 -ss root  -sr localMachine

-n 後面要接上對外網址,不然到時候瀏覽器會出現警告, 而 ss 後面代表要放到 受信任的根憑證授權單位 sr 代表是放到 本機電腦;可以參考下圖

01

接下來,我們稍微挑整一下憑證的用途。

02

因為只需要提供驗證,所以勾底下的就可以了, 另外,易記名稱記得要 Key,到時候 IIS 上的顯示,就是會顯示這邊。

03

IIS 使用憑證

當有了憑證後,我們就可以讓 IIS 使用此憑證。

04

接下來,我們就將此憑證匯入,在這邊匯入的是剛剛我們建立的憑證,副檔名為 .pfx 如果找不到 .pfx 的話,也可以從憑證管理員的地方進行匯出。( 不是下圖的地方匯出喔! )

05

接下來,我們就要把站台與憑證繫結。

06

最後,在這邊把 https 加上。

07

接下來,回到 TFS 的 設定畫面,我們就可以變更公用 URL, 而這邊要注意,有可能因為 Windows Server 預設的安全機制,造成驗證失敗。

08

關於驗證失敗,可以參考底下三篇

或是於底下的註冊碼進行修改。

09

匯出憑證提供給其他電腦

接下來,我們要把一開始放到根信任憑證授權單位的憑證,進行匯出,並且到時候這個會提供給 Client 使用; 這邊,我們只要選擇之前的那個憑證,並且按下滑鼠右鍵,就可以從選單裡面找到匯出, 之後,於跳出的視窗中,選擇不要匯出私密金鑰,並且選擇 .P7B 格式,最 後步驟則是選擇要匯出到哪個位置 ( 因為步驟滿簡單的,小弟就不截圖了 )

10

接著,將匯出的憑證,用盡各種手段,複製到 Client 的機器上;這次我們就要在 Client 上打開 mmc ; 接著在 受信任的根憑證授權單位底下,按滑鼠右鍵,選擇匯入。

11

這樣就完成了!!

12

後記

其實過程還滿簡單的,不過這邊的設定僅 TFS 那台 Server 而已, 如果要連到 SharePoint 或是 ReportService ,會變得麻煩許多, 另外如果額外有 Build Server,也別忘記要把憑證匯進去喔~

參考資料

Sky & Study4.TW