- 論壇徽章:
- 0
|
本帖最后由 shang2354 于 2010-05-21 16:00 編輯
前幾天有個(gè)項(xiàng)目需要做SSL雙向認(rèn)證,現(xiàn)在記錄下綜合前輩思想的配置方法。
Resin支持多種SSL證書的文件格式,包括Java Keystore, PKCS12, Openssl等。目前Openssl僅在Resin 3.2 Professionial 版本才可以獲得支持。但在Resin 2和Resin 3的開源版本中都可以支持Java Keystore, PKCS12。
本文將使用JDK的keytool來為Resin配置雙向SSL認(rèn)證。
JDK1.6.10
Resin-3.1.6
============================================================================
一 生成服務(wù)器證書
使用keytool為Resin生成證書,假定服務(wù)器的域名是"aa.bb.com",keystore文件存放在"/usr/resin/conf",口令為“123456”,使用下面的命令:
/usr/local/jdk/bin/keytool -genkey -v -alias resin -validity 3650 -keyalg RSA -keystore /usr/resin/conf/server.keystore -dname "CN=aaa.bb.com,OU=a,O=a,L=SH,ST=SH,C=CN" -storepass 123456 -keypass 123456
二 生成客戶端證書
生成IE能使用的證書,所以其格式將是PKCS12,使用下面的命令來完成:
/usr/local/jdk/bin/keytool -genkey -v -alias resin -validity 3650 -keyalg RSA -storetype PKCS12 -keystore /usr/resin/conf/client.p12 -dname "CN=aaa.bb.com,OU=a,O=a,L=SH,ST=SH,C=CN" -storepass 123456 -keypass 123456
三 服務(wù)端信任客戶端
由于是雙向SSL認(rèn)證,服務(wù)器必須要信任客戶端證書,因此,必須把客戶端證書添加為服務(wù)器的信任認(rèn)證。由于不能直接將PKCS12格式的證書庫導(dǎo)入,所以要先把客戶端證書導(dǎo)出為一個(gè)單獨(dú)的CER文件,命令如下:
/usr/local/jdk/bin/keytool -export -alias resin -keystore /usr/resin/conf/client.p12 -storetype PKCS12 -rfc -file /usr/resin/conf/client.cer
下一步是把生成的.cer文件添加到服務(wù)器的信任證書庫,是其成為服務(wù)器的信任證書,命令如下:
/usr/local/jdk/bin/keytool -import -v -file /usr/resin/conf/client.cer -keystore /usr/resin/conf/server.keystore
通過list命令可以查看服務(wù)器的證書庫,在里面講看到兩個(gè)證書,一個(gè)服務(wù)端的、一個(gè)客戶端的。
四 將客戶端證書導(dǎo)入cacerts密鑰庫
/usr/local/jdk/bin/keytool -import -v -trustcacerts -storepass changeit -alias resin -file /usr/resin/conf/client.cer -keystore /usr/local/jdk/jre/lib/security/cacerts
五 配置Resin
在Resin的配置文件中添加如下配置:
<http address="*" port="443">
<jsse-ssl>
<key-store-type>jks</key-store-type>
<key-store-file>/usr/resin/conf/server.keystore</key-store-file>
<password>123456</password>
<verify-client>required</verify-client>
</jsse-ssl>
</http>
<verify-client>required</verify-client>此項(xiàng)是開啟雙向認(rèn)證。
配置完成重啟Resin服務(wù),將client.p12文件導(dǎo)入IE瀏覽器即可訪問。https://aaa.b.com. |
|