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