keytool+tomcat配置HTTPS雙向證書認證(無openssl)

在Tomcat 6中配置SSL雙向認證是相當容易的,本文將介紹如何使用JDK的keytool來爲Tomcat配置雙向SSL認證。

系統需求:

JDK 5.0
Tomcat 6.0.16

定位到你要生成keystore的路徑

第一步:爲服務器生成證書

使用keytool爲Tomcat生成證書,假定目標機器的域名是“localhost”,keystore文件存放在“C:/tomcat.keystore”,口令爲“password”,使用如下命令生成:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.keystore

如果Tomcat所在服務器的域名不是“localhost”,應改爲對應的域名,如“www.sina.com.cn”,否則瀏覽器會彈出警告窗口,提示用戶證書與所在域不匹配。在本地做開發測試時,應填入“localhost”


第二步:爲客戶端生成證書

下一步是爲瀏覽器生成證書,以便讓服務器來驗證它。爲了能將證書順利導入至IE和Firefox,證書格式應該是PKCS12,因此,使用如下命令生成:

keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore c:/my.p12

來源:(http://blog.sina.com.cn/s/blog_4fb846a90100em4m.html) - keytool+tomcat配置HTTPS雙向證書認證(無openssl)_必須呼吸_新浪博客

對應的證書庫存放在“C:/my.p12”,客戶端的CN可以是任意值。稍候,我們將把這個“my.p12”證書庫導入到IE和Firefox中。

第三步:讓服務器信任客戶端證書

由於是雙向SSL認證,服務器必須要信任客戶端證書,因此,必須把客戶端證書添加爲服務器的信任認證。由於不能直接將PKCS12格式的證書庫導入,我們必須先把客戶端證書導出爲一個單獨的CER文件,使用如下命令:

keytool -export -alias mykey -keystore my.p12 -store PKCS12 -storepass password -rfc -file c:/my.cer

通過以上命令,客戶端證書就被我們導出到“C:/my.cer”文件了。下一步,是將該文件導入到服務器的證書庫,添加爲一個信任證書:


keytool -import -v -file my.cer -keystore tomcat.keystore


通過list命令查看服務器的證書庫,我們可以看到兩個輸入,一個是服務器證書,一個是受信任的客戶端證書:


keytool -list -keystore tomcat.keystore

第四步:配置Tomcat服務器

打開Tomcat根目錄下的/conf/server.xml,找到如下配置段,修改如下:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="true" sslProtocol="TLS"
    keystoreFile="C:/tomcat.keystore" keystorePass="password"
    truststoreFile="C:/tomcat.keystore" truststorePass="password"
/>

第五步:導入客戶端證書

如果設置了clientAuth="true",則需要強制驗證客戶端證書。雙擊“C:/my.p12”即可將證書導入至IE:
p12 證書直接雙擊然後按提示下一步就可導入。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章