tomcat-ssl-config
Tomcat 雙向SSL 認(rèn)證的配置作者:廖雪峰在Tomcat 6中配置SSL 雙向認(rèn)證是相當(dāng)容易的,本文將介紹如何使用JDK 的keytool 來為Tomcat 配置雙向SSL 認(rèn)證。系統(tǒng)需求:JD
Tomcat 雙向SSL 認(rèn)證的配置
作者:廖雪峰
在Tomcat 6中配置SSL 雙向認(rèn)證是相當(dāng)容易的,本文將介紹如何使用JDK 的keytool 來為Tomcat 配置雙向SSL 認(rèn)證。
系統(tǒng)需求:
JDK 5.0
Tomcat 6.0.16
第一步:為服務(wù)器生成證書
使用keytool 為Tomcat 生成證書,假定目標(biāo)機(jī)器的域名是“l(fā)ocalhost ”,keystore 文件存放在“C:tomcat.keystore”,口令為“password ”,使用如下命令生成:
如果Tomcat 所在服務(wù)器的域名不是“l(fā)ocalhost ”,應(yīng)改為對應(yīng)的域名,如“www.sina.com.cn”,否則瀏覽器會彈出警告窗口,提示用戶證書與所在域不匹配。在本地做開發(fā)測試時,應(yīng)填入“l(fā)ocalhost ”
第二步:為客戶端生成證書
下一步是為瀏覽器生成證書,以便讓服務(wù)器來驗證它。為了能將證書順利導(dǎo)入至IE 和Firefox ,證書格式應(yīng)該是PKCS12,因此,使用如下命令生成:
,對應(yīng)的證書庫存放在“C:my.p12”,客戶端的CN 可以是任意值。稍候,我們將把這個“my.p12”證書庫導(dǎo)入到IE 和Firefox 中。
第三步:讓服務(wù)器信任客戶端證書
由于是雙向SSL 認(rèn)證,服務(wù)器必須要信任客戶端證書,因此,必須把客戶端證書添加為服務(wù)器的信任認(rèn)證。由于不能直接將PKCS12格式的證書庫導(dǎo)入,我們必須先把客戶端證書導(dǎo)出為一個單獨的CER 文件,使用如下命令:
,通過以上命令,客戶端證書就被我們導(dǎo)出到“C:my.cer”文件了。下一步,是將該文件導(dǎo)入到服務(wù)器的證書庫,添加為一個信任證書:
通過list 命令查看服務(wù)器的證書庫,我們可以看到兩個輸入,一個是服務(wù)器證書,一個是受信任的客戶端證書:
第四步:配置Tomcat 服務(wù)器
打開Tomcat 根目錄下的/conf/server.xml,找到如下配置段,修改如下:
maxThreads="150" scheme="https" secure="true" clientAuth="true " sslProtocol="TLS" keystoreFile="C:/tomcat.keystore" keystorePass="password " truststoreFile="C:/tomcat.keystore" truststorePass="password " /> 其中,clientAuth 指定是否需要驗證客戶端證書,如果該設(shè)置為“false ”,則為單向SSL 驗證,SSL 配置可到此結(jié)束。如果clientAuth 設(shè)置為“true ”,表示強(qiáng)制雙向SSL 驗證,必須驗證客戶端證書。如果clientAuth 設(shè)置為“want ”,則表示可以驗證客戶端證書,但如果客戶端沒有有效證書,也不強(qiáng)制驗證。 第五步:導(dǎo)入客戶端證書 如果設(shè)置了clientAuth="true",則需要強(qiáng)制驗證客戶端證書。雙擊“C:my.p12”即可將證書導(dǎo)入至IE : 導(dǎo)入證書后,即可啟動Tomcat ,用IE 進(jìn)行訪問。如果需要用FireFox 訪問,則需將證書導(dǎo)入至FireFox : 作者簡介: 廖雪峰,長期從事J2EE/J2ME開發(fā),對Open Source框架有深入研究。目前廖雪峰創(chuàng)建了JavaEE 開發(fā)網(wǎng) ,著有《Spring 2.0核心技術(shù)與最佳實踐》一書。 (http://www.javaeedev.com)