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

SSL (Secure Socket Layer - 安全套接字層)

功能:保障在Internet上數據傳輸之安全,利用數據加密(Encryption)技術,確保數據在網絡上之傳輸過程中不會被截取及竊聽,防止篡改。

 

如何讓我們的WEB應用程序應用SSL安全保障?經過幾天摸索,終於實現 TOMCAT+SSL 雙向認證,也就是說,首先,客戶端將要認證服務器的安全性,確保訪問的是正確的服務器,而非假冒的釣魚網站;其次,服務器也要認證客戶端的安全性,只有那些擁有服務器授權證書的客戶端纔可以訪問。

 

下面請遵循詳細步驟

1.       在D盤建立目錄:mykeys

2.       啓動命令行,並轉移到 d:/mykeys

a)         創建服務器密鑰,其密鑰庫爲 d:/mykeys/server.ks,注意keypass和storepass保持一致,它們分別代表 密鑰密碼和密鑰庫密碼,注意 CN=localhost 中,localhost表示要配置SSL的主機名,不能任意指定
D:/mykeys>keytool -genkey -v -alias serverKey -dname "CN=localhost" -keyalg RSA -keypassrwm258 -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 證書

a)         現在,再次在IE瀏覽器中訪問:https://localhost:8443/ 你會發現,回顧前面的 3 步驟,你會明白爲什麼要將客戶端證書導入 IE 瀏覽器;

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 安全訪問服務吧

發佈了141 篇原創文章 · 獲贊 108 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章