星期二, 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

關於使用微軟工具處理憑證

此人真是先進! http://blogs.microsoft.co.il/applisec/2008/04/08/creating-x509-certificates-using-makecertexe/

星期一, 1月 27, 2014

解放 IIS Express 的快速做法

IIS Express 通常有兩個限制:
  • 只能藉由 localhost,不能透過真實的主機名稱訪問。
  • 埠號小於 1024 時,必須以系統管理權限啟動。
如果真的深究下去,讀者們可能會發現以上這些敘述不是那麼精準(或直接相關)的,我先承認!不過本篇的重點在如何突破這些限制,做法也很簡單(二選一):
  • 請參考 http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx 的附錄 Z,以系統管理權限在命令列執行「C:\Program Files (x86)\IIS Express>IisExpressAdminCmd.exe  setupFriendlyHostnameUrl -url:http://myHostName:80/」。
  • 在 applicationHost.config 新增相關的 binding。
以上這些方式還是有個小小限制,不能將主機名稱設得像 www.abc.com 這種形式,如果一定要,還是請自行修改 hosts 吧!

[2018/08/27] 為了找到正確的 applicationHost.config,還得花一番工夫,所以再補充一下:
  • system tray > Show All Applications > Config
  • change bindingInformation from *:80:localhost to *:80:

星期二, 1月 21, 2014

使用 Eclipse 瀏覽藉由 Maven 管理的專案原始碼

安裝設定需求
  • JDK 最新版,不需設定環境變數等內容
  • Eclipse for Java EE 最新版,會自動搜尋電腦上已安裝的 Java
  • 不需額外安裝 Maven 或插件,使用內建版本即可
做法
  • 隨意新增一個 Maven 專案,groupId 與 artifactId 可以任意填寫,template 選預設的 quickstart 即可。
  • 編輯 pom.xml,新增一個 dependency,groupId、artifactId、version 要填人家正式公佈的,例如 org.jasig.cas / cas-server-webapp / 3.5.2。存檔。
  • 需有網路連線。
  • 在專案上右鍵所出現的選單有 Maven -> Download Sources。
  • 在 Maven Dependencies 展開可見相依的 Jar 檔,進一步展開即可見原始碼。