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