系統(tǒng)需求:
1、 Windows系統(tǒng)或Linux系統(tǒng)
2、 安裝并配置JDK 1.6.0_13
3、 安裝并配置Tomcat 6.0
第一步:為服務(wù)器生成證書
1、 Windows系統(tǒng)
- “運行”控制臺,進入%JAVA_HOME%/bin目錄
- 使用keytool為Tomcat生成證書,假定目標(biāo)機器的域名是“localhost”,keystore文件存放在“D:\home\tomcat.keystore”,口令為“password”,使用如下命令生成:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\home\tomcat.keystore -validity 36500
(參數(shù)簡要說明:“D:\home\tomcat.keystore”含義是將證書文件的保存路徑,證書文件名稱是tomcat.keystore ;“-validity 36500”含義是證書有效期,36500表示100年,默認(rèn)值是90天)
A、輸入keystore密碼:此處需要輸入大于6個字符的字符串
B、“您的名字與姓氏是什么?”這是必填項,并且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com 或者 10.1.25.251](就是你將來要在瀏覽器中輸入的訪問地址),否則瀏覽器會彈出警告窗口,提示用戶證書與所在域不匹配。在本地做開發(fā)測試時,應(yīng)填入“localhost”
C、“你的組織單位名稱是什么?”、“您的組織名稱是什么?”、“您所在城市或區(qū)域名稱是什么?”、“您所在的州或者省份名稱是什么?”、“該單位的兩字母國家代碼是什么?”可以按照需要填寫也可以不填寫直接回車,在系統(tǒng)詢問“正確嗎?”時,對照輸入信息,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的信息
D、輸入<tomcat>的主密碼,這項較為重要,會在tomcat配置文件中使用,建議輸入與keystore的密碼一致,設(shè)置其它密碼也可以
- 完成上述輸入后,直接回車則在你在第二步中定義的位置找到生成的文件
2、 Linux系統(tǒng)
- “運行”控制臺,進入%JAVA_HOME%/bin目錄
- 使用如下命令生成:
./keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/ac/web/tomcat.keystore -validity 36500
(參數(shù)簡要說明:“/etc/tomcat.keystore”含義是將證書文件保存在路徑/usr/local/ac/web/下,證書文件名稱是tomcat.keystore ;“-validity 36500”含義是證書有效期,36500表示100年,默認(rèn)值是90天)
A、Enter keystore password:此處需要輸入大于6個字符的字符串
B、“What is your first and last name?”這是必填項,并且必須是TOMCAT部署主機的域名或者IP[如:gbcom.com 或者 10.1.25.251],就是你將來要在瀏覽器中輸入的訪問地址
C、“What is the name of your organizational unit?”、“What is the name of your organization?”、“What is the name of your City or Locality?”、“What is the name of your State or Province?”、“What is the two-letter country code for this unit?”可以按照需要填寫也可以不填寫直接回車,在系統(tǒng)詢問“correct?”時,對照輸入信息,如果符合要求則使用鍵盤輸入字母“y”,否則輸入“n”重新填寫上面的信息
D、Enter key password for <tomcat>,這項較為重要,會在tomcat配置文件中使用,建議輸入與keystore的密碼一致,設(shè)置其它密碼也可以
- 完成上述輸入后,直接回車則在你在第二步中定義的位置找到生成的文件
第二步:為客戶端生成證書
- 為瀏覽器生成證書,以便讓服務(wù)器來驗證它。為了能將證書順利導(dǎo)入至IE和Firefox,證書格式應(yīng)該是PKCS12,因此,使用如下命令生成:
keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\home\mykey.p12
對應(yīng)的證書庫存放在“D:\home\mykey.p12”,客戶端的CN可以是任意值。雙擊mykey.p12文件,即可將證書導(dǎo)入至瀏覽器(客戶端)。
第三步:讓服務(wù)器信任客戶端證書
- 由于是雙向SSL認(rèn)證,服務(wù)器必須要信任客戶端證書,因此,必須把客戶端證書添加為服務(wù)器的信任認(rèn)證。由于不能直接將PKCS12格式的證書庫導(dǎo)入,必須先把客戶端證書導(dǎo)出為一個單獨的CER文件,使用如下命令:
keytool -export -alias mykey -keystore D:\home\mykey.p12 -storetype PKCS12 -storepass password -rfc -file D:\home\mykey.cer
- 通過以上命令,客戶端證書就被我們導(dǎo)出到“D:\home\mykey.cer”文件了。下一步,是將該文件導(dǎo)入到服務(wù)器的證書庫,添加為一個信任證書:
keytool -import -v -file D:\home\mykey.cer -keystore D:\home\tomcat.keystore
- 通過list命令查看服務(wù)器的證書庫,可以看到兩個證書,一個是服務(wù)器證書,一個是受信任的客戶端證書:
keytool -list -keystore D:\home\tomcat.keystore
第四步:讓客戶端信任服務(wù)器證書
- 由于是雙向SSL認(rèn)證,客戶端也要驗證服務(wù)器證書,因此,必須把服務(wù)器證書添加到瀏覽的“受信任的根證書頒發(fā)機構(gòu)”。由于不能直接將keystore格式的證書庫導(dǎo)入,必須先把服務(wù)器證書導(dǎo)出為一個單獨的CER文件,使用如下命令:
keytool -keystore D:\home\tomcat.keystore -export -alias tomcat -file D:\home\tomcat.cer
- 通過以上命令,服務(wù)器證書就被我們導(dǎo)出到“D:\home\tomcat.cer”文件了。雙擊tomcat.cer文件,按照提示安裝證書,將證書填入到“受信任的根證書頒發(fā)機構(gòu)”。
第四步:配置Tomcat服務(wù)器
打開Tomcat根目錄下的/conf/server.xml,找到如下配置段,修改如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="D:\\home\\test.keystore" keystorePass="123456"
truststoreFile="D:\\home\\test.keystore" truststorePass="123456" />
屬性說明:
- clientAuth:設(shè)置是否雙向驗證,默認(rèn)為false,設(shè)置為true代表雙向驗證
- keystoreFile:服務(wù)器證書文件路徑
- keystorePass:服務(wù)器證書密碼
- truststoreFile:用來驗證客戶端證書的根證書,此例中就是服務(wù)器證書
- truststorePass:根證書密碼
第五步:測試
在瀏覽器中輸入:https://localhost:8443/,會彈出選擇客戶端證書界面,點擊“確定”,會進入tomcat主頁,地址欄后會有“鎖”圖標(biāo),表示本次會話已經(jīng)通過HTTPS雙向驗證,接下來的會話過程中所傳輸?shù)男畔⒍家呀?jīng)過SSL信息加密。
注意事項:貌似導(dǎo)入證書的時候,最好導(dǎo)入到“個人”那一欄里面,貌似客戶端的用戶名不填寫也是可以的,或者隨便填寫。
http://licg1234.blog.163.com/blog/static/13908233320121165356868/