星期二, 1月 28, 2014

抽換 IIS Express SSL 憑證

這件事在一般的網站伺服器都不難(可參考這篇),但誰叫 IIS Express 沒有管理介面這麼陽春呢? 先來談一下在 IIS Express 如何測試 https?其實還真簡單,只要到專案的屬性頁去找「SSL Enabled」設定就可以了,但為什麼不必(也不能)指定憑證與金鑰對呢?其實是在 Visual Studio 2013 Express for Web 安裝過程中,就已建立了一個本機用的伺服器憑證。 為了讓外界訪問非以 localhost 為名的網站(可參考這篇),並且通過 SSL 加密,必須準備另一個憑證來抽換,以下是簡略的步驟:
  1. 雖然是在 Windows 8.1 64 bits + Visual Studio 2013 Express for Web 測試,但必須事先額外安裝的是 Windows 8 SDK(現在好像還是沒看到 Windows 8.1 SDK?),而且使用 x86 目錄(微軟官網自承用 x64 會有問題)下的工具產生一個自簽憑證,命令如下:MakeCert.exe -r -pe -n "CN=yourhostname" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr LocalMachine -sky exchange
  2. 用 MMC 將上述憑證由「個人」區匯出到 pfx 檔案,記得要匯出私鑰與延伸屬性,再匯入到「信任的根憑證」區。注意:一不能用拖拉,二不能刪了舊的。
  3. 準備上述憑證的姆指紋,去除分隔用的空白。
  4. 用以下指令清除舊的安全通道與憑證繫結:netsh http delete sslcert ipport=0.0.0.0:443
  5. 用以下指令建立新的安全通道與憑證繫結:netsh http add sslcert ipport=0.0.0.0:443 appid={214124cd-d05b-4309-9af9-9caa44b2b74a} certhash=thumbprint

沒有留言:

張貼留言