Tomcat 6中配置SSL雙向認證

舉例以下:web

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

系統需求:tomcat

JDK 5.0服務器

Tomcat 6.0.16測試

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

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

keytool -genkey -v -alias tomcat -keyalg RSA   -validity 3650  -keystore c:\tomcat.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass password -keypass passwordserver

以下圖:xml

若是Tomcat 所在服務器的域名不是「 localhost 」,應改成對應的域名,如「 www.sina.com.cn 」,不然瀏覽器會彈出警告窗口,提示用戶證書與所在域不匹配。在本地作開發測試時,應填入「 localhost 」blog

 

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

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

C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkeypair -v -alias lcl -keyalg RSA -storetype PKCS12 -keystore  C:\my.p12 -dname "CN=MyKey,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass password -keypass password

對應的證書庫存放在「C:\my.p12 」,客戶端的 CN 能夠是任意值。稍候,咱們將把這個「 my.p12 」證書庫導入到 IE和 Firefox 中。

 

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

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

keytool -export -alias myKey -keystore C:\my.p12 -storetype PKCS12 -storepass password -rfc -file C:\my.cer

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

keytool -import -v -file C:\my.cer -keystore c:\tomcat.keystore -storepass password

經過list 命令查看服務器的證書庫,咱們能夠看到兩個輸入,一個是服務器證書,一個是受信任的客戶端證書:

keytool -list -keystore c:\tomcat.keystore -storepass password

 

第四步:配置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"/>

 

應用程序的web.xml 能夠加上這句話:

<!-- Authorization setting for SSL -->

<auth-method>CLIENT-CERT</auth-method>

<realm-name>Client Cert Users-only Area</realm-name>

</login-config>

<security-constraint>

<!-- Authorization setting for SSL -->

<web-resource-collection >

<web-resource-name >SSL</web-resource-name>

<url-pattern>/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

 

第五步:導入客戶端證書

果設置了clientAuth="true" ,則須要強制驗證客戶端證書。雙擊 「C:\my.p12」 便可將證書導入至 IE :

導入證書後,便可啓動Tomcat ,用 IE 進行訪問。若是須要用 FireFox 訪問,則需將證書導入至 FireFox :

原文出自:http://htallen.iteye.com/blog/658169.轉載請註明出自.請尊重他人的勞動成果.

相關文章
相關標籤/搜索