Windows XP 與 Windows Vista 下為 IIS 建立測試 SSL 的環境

 

對於一個開發人員,要測試 SSL 相關應用總是件麻煩事,每個平台對於憑證管理工具皆不相同,此外要找個認證中心核發數位簽章,每年付年費以供測試用途,也似乎小題大作。要再一個 Windows XP 環境中的 IIS 測試 SSL,常見方式有下列幾種 :

  1. 至知名的認證中心取得 ( 例如 : VeriSign ) 試用版的憑證,這類憑證有效時間都不長,可以瞭解正式申請憑證時的大致步驟。
  2. 安裝 Windows Server 2003 Enterprise 版,利用 Certificate Services 在自己的網路環境內核發憑證。
  3. 利用搭配 Windows Server 2003 的 IIS 6.0 Resource Kit Tools 內工具 selfssl.exe 作自我簽章 (Self Signed)。

單就測試而言,第三種方式是最簡單的,雖然 Windows XP Professional 版內附的是 IIS 5.1,但是 IIS 6.0 Resource Kit Tools 內的 selfssl.exe 也能夠使用。

使用方法很簡單,在 Console Mode 命令列模式執行 selfssl.exe 按下 Enter 鍵,selfssl.exe 會問您是否確認,按下 Y 確認後即完成。未加任何參數的狀況下,等同於如下參數 :

selfssl.exe /N:CN=MyComputerName /K:1024 /V:7 /S:1 /P:443

接下來您便可鍵入 https://localhost/ 進行測試,將出現如下的畫面 :

為了避免憑證有有效期限快速過期 (預設為 7 天),造成每次連線時出現安全性警訊對話方塊,提醒您 "安全憑證日期有效"出了問題,我們可以把憑證有效時間延長,如果您想將測試憑證的有效時間設為 180 天,只需要改 /V 參數值即可。

selfssl.exe /N:CN=MyComputerName /K:1024 /V:180 /S:1 /P:443

上述畫面中出現安全性警訊對話方塊了,顯示 "安全性憑證的名稱不正確或與網站的名稱不符",這應是 /N:CN=MyComputerName 與 https://localhost 不相同所造成的,也就是說當您改為鍵入 https://MyComputerName 可能就不會出現安全性警訊對話方塊了。

倘若您測試連線時,顯示出現驚嘆號的對話方塊"安全性憑證是由信任的憑證授權單位發出的",提醒您這個核發認證中心未被信任 (這是理所當然,Microsoft Internet Exploer 內建只信任些國際級大型 Root CA)

為了避免每次連線出現這個安全性警訊對話方塊,我們可以按下"檢視憑證"按鈕,將出現如下的對話方塊,這時我們只要按下 "安裝憑證" 按鈕,將這個用 selfssl.exe 產生出來的憑證讓我目前的使用者所信任,以後便不會再出現安全性警訊對話方塊了。

而要在 Windows Vista 下的 IIS 7 測試 SSL 就方便多了,因為 IIS 7 已經內建了 SelfSSL 功能,不需要再去使用命令列工具了,

微軟開發部門主管 ScoottGu 先生在他的 blog 中有完整的使用步驟,需要在 Windows Vista 下測試 SSL 的朋友可以參考這篇 Tip/Trick: Enabling SSL on IIS 7.0 Using Self-Signed Certificates