星期三, 3月 20, 2013

如何用自簽憑證測試 Tomcat / IIS SSL

首先是製作自簽憑證,最大眾化的工具是 Java keytool,指令如下(所有字的部份都可以依個別情況修改):

keytool -genkeypair -alias a -keystore store.pfx -storetype pkcs12 -keyalg RSA -dname "CN=www.xyz.com,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass password -storepass password

接著暫時先看 Tomcat 6.x,假設上述產出的 store.pfx 放在 conf 目錄下,再來是在 server.xml 設定以下段落:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           keystoreFile="conf/store.pfx"
           keystoreType="pkcs12" keystorePass="password"
           truststoreFile="conf/store.pfx"
           truststoreType="pkcs12" truststorePass="password"
           clientAuth="false" sslProtocol="TLS" />

在用 IE 測試前,網際網路選項->內容->憑證->受信任的根憑證授權單位->匯入 store.pfx,接著開 Tomcat https 的網頁即可。

至於 IIS 7.5 則比較簡單,先在 IIS 管理員匯入伺服器憑證,當然還是 store.pfx,「允許匯出此憑證」需保持勾選;然後是 SSL 設定->繫結即可。

[2013/08/15 補充]
  1. 在 store 只有一個 key 的情況下,也就是上例,別名(alias)可有可無。
  2. CN= 的內容必須與提供外界訪問的網域名稱完全相符,在本機測試時,當然也可以是電腦名稱或是 localhost。
  3. -storetype pkcs12 如果省略的話,會是另一種 keytool 預設的格式,IIS 可能不支援,Tomcat 應該會支援,Jetty 只支援這種,不接受 pkcs12。
  4. keytool 預設格式的 store 即使附檔名一樣為 pfx,還是不能在 IE 匯入憑證,但我們可以用 keytool -exportcert 輕易地抽出憑證(不含金鑰)到另一個檔案,再匯入 IE。

沒有留言:

張貼留言