TOMCAT-SSL雙向認證-配置實例

SSL (Secure Socket Layer - 安全套接字層)
功能:保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,確保數據在網絡上之傳輸過程中不會被截取及竊聽,防止篡改。
如何讓我們的WEB應用程序應用SSL安全保障?經過幾天摸索,終於實現 TOMCAT+SSL 雙向認證,也就是說,首先,客戶端將要認證服務器的安全性,確保訪問的是正確的服務器,而非假冒的釣魚網站;其次,服務器也要認證客戶端的安全性,只有那些擁有服務器授權證書的客戶端纔可以訪問。
下面請遵循詳細步驟
1.D盤建立目錄:mykeys
2.啓動命令行,並轉移到 d:/mykeys
a)創建服務器密鑰,其密鑰庫爲 d:/mykeys/server.ks,注意keypassstorepass保持一致,它們分別代表 密鑰密碼和密鑰庫密碼,注意 CN=localhost 中,localhost表示要配置SSL的主機名,不能任意指定
D:/mykeys>keytool -genkey -v -alias serverKey -dname "CN=localhost" -keyalg RSA -keypass rwm258 -keystore server.ks -storepass rwm258
b)創建客戶端密鑰,其密鑰庫爲 d:/mykeys/client.p12,注意這個密鑰庫的後綴名,注意密鑰庫類型PKCS12
D:/mykeys>keytool -genkey -v -alias clientKey -dname "CN=SomeOne" -keyalg RSA -keypass lyl147 -keystore client.p12 -storepass lyl147 -storetype PKCS12
c)將客戶端密鑰導出爲證書文件
D:/mykeys>keytool -export -alias clientKey -file clientKey.cer -keystore client.p12 -storepass lyl147 -storetype PKCS12
d)將上述客戶端密鑰文件導入服務器證書庫,並設置爲信任證書;注意會問你是否信任該證書,回答 y 即可
D:/mykeys>keytool -import -v -alias clientKey -file clientKey.cer -keystore server.ks -storepass rwm258
3.爲了在本機瀏覽器中進行SSL訪問,請:雙擊 d:/mykeys/client.p12 ,將啓動證書嚮導
a)2步:要導入的文件 文件名 D:/mykeys/client.p12
b)3步:爲私鑰鍵入密碼lyl147 ,勾選:標誌此密鑰爲可導出的
c)4步:證書存儲,選:將所有的證書放入下列存儲區,然後,瀏覽-個人
d)現在,打開IE,查看證書:工具-Internet選項-內容-證書-個人,可以看到 SomeOne 證書已被安裝
4.配置TOMCAT服務器,以支持SSL認證,編輯文件:%tomcat_home%/conf/server.xml,下面這段配置代碼本來是被屏蔽的,現在請取消其屏蔽,並相應增加密鑰庫的配置,其中clientAuth="true" 用以啓動雙向認證,否則,只有客戶端認證服務器-單向
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile="D:/mykeys/server.ks" keystorePass="rwm258"
truststoreFile="D:/mykeys/server.ks " truststorePass="rwm258" />
5.啓動 TOMCAT,然後在IE瀏覽器中訪問:https://localhost:8443/
a)將彈出一個消息框,這是要客戶端認證服務器,查看證書可看到服務器證書爲 localhost ,回顧前面的步驟,正是我們創建的那個服務器證書;這裏點 是
b)頁面出現,說明客戶端被允許訪問
6.現在,再次打開IE,工具-Internet選項-內容-證書-個人 ,刪除那個 SomeOne 證書
7.請再次重複 3 步驟,之後再嘗試訪問
OK,至此,我們在本機上SSL雙向配置已經成功,那麼,換另一臺電腦來訪問本機服務器如何處理呢?很簡單,把 d:/mykeys/client.p12 複製到該機器,然後執行 3 步驟,將這個證書導入到該機器的 IE 瀏覽器個人證書中,記得密碼是:lyl147;當然,在那臺電腦上訪問時,要將localhost修改爲本機主機名或IP地址
-------------------------------------------------------------------
要使你自己的WEB程序應用SSL安全訪問,請遵循如下配置
在你應用的 web.xml 文件的 <web-app></web-app> 中加入如下配置
<login-config>
<!-- 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>
你會發現,即使使用 http://....:8080 來訪問你的應用程序,它也會重定向爲 https://....8443 訪問,也就是說,你的應用已經強制使用SSL安全訪問層
OK,現在,充分享受 SSL 安全訪問服務吧
此外,你還可以在你的程序中驗證客戶證書,實現客戶端證書登錄,具體這裏不談了,下次給出完整程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章