The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

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

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

           

          如何讓我們的WEB應(yīng)用程序應(yīng)用SSL安全保障?經(jīng)過幾天摸索,終于實現(xiàn) TOMCAT+SSL 雙向認(rèn)證,也就是說,首先,客戶端將要認(rèn)證服務(wù)器的安全性,確保訪問的是正確的服務(wù)器,而非假冒的釣魚網(wǎng)站;其次,服務(wù)器也要認(rèn)證客戶端的安全性,只有那些擁有服務(wù)器授權(quán)證書的客戶端才可以訪問。

           

          下面請遵循詳細(xì)步驟

          1.       D盤建立目錄:mykeys

          2.       啟動命令行,并轉(zhuǎn)移到 d:/mykeys

          a)         創(chuàng)建服務(wù)器密鑰,其密鑰庫為 d:/mykeys/server.ks,注意keypassstorepass保持一致,它們分別代表 密鑰密碼和密鑰庫密碼,注意 CN=localhost 中,localhost表示要配置SSL的主機(jī)名,不能任意指定
          D:/mykeys>keytool -genkey -v -alias serverKey -dname "CN=localhost" -keyalg RSA -keypass rwm258-keystore server.ks -storepass rwm258

          b)        創(chuàng)建客戶端密鑰,其密鑰庫為 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ǎo)出為證書文件
          D:/mykeys>keytool -export -alias clientKey -file clientKey.cer -keystore client.p12 -storepass lyl147 -storetype PKCS12

          d)        將上述客戶端密鑰文件導(dǎo)入服務(wù)器證書庫,并設(shè)置為信任證書;注意會問你是否信任該證書,回答 y 即可
          D:/mykeys>keytool -import -v -alias clientKey -file clientKey.cer -keystore server.ks -storepass rwm258

          3.       為了在本機(jī)瀏覽器中進(jìn)行SSL訪問,請:雙擊 d:/mykeys/client.p12 ,將啟動證書向?qū)?/span>

          a)         2步:要導(dǎo)入的文件 文件名  D:/mykeys/client.p12

          b)        3步:為私鑰鍵入密碼lyl147 ,勾選:標(biāo)志此密鑰為可導(dǎo)出的

          c)        4步:證書存儲,選:將所有的證書放入下列存儲區(qū),然后,瀏覽-個人

          d)        現(xiàn)在,打開IE,查看證書:工具-Internet選項-內(nèi)容-證書-個人,可以看到 SomeOne 證書已被安裝

          4.       配置TOMCAT服務(wù)器,以支持SSL認(rèn)證,編輯文件:%tomcat_home%/conf/server.xml,下面這段配置代碼本來是被屏蔽的,現(xiàn)在請取消其屏蔽,并相應(yīng)增加密鑰庫的配置,其中clientAuth="true"用以啟動雙向認(rèn)證,否則,只有客戶端認(rèn)證服務(wù)器-單向

          <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)         將彈出一個消息框,這是要客戶端認(rèn)證服務(wù)器,查看證書可看到服務(wù)器證書為 localhost ,回顧前面的步驟,正是我們創(chuàng)建的那個服務(wù)器證書;這里點 

          b)        頁面出現(xiàn),說明客戶端被允許訪問

          6.       現(xiàn)在,再次打開IE,工具-Internet選項-內(nèi)容-證書-個人 ,刪除那個 SomeOne 證書

          a)         現(xiàn)在,再次在IE瀏覽器中訪問:https://localhost:8443/ 你會發(fā)現(xiàn),回顧前面的 3 步驟,你會明白為什么要將客戶端證書導(dǎo)入 IE 瀏覽器;

          7.       請再次重復(fù) 3 步驟,之后再嘗試訪問

           

          OK,至此,我們在本機(jī)上SSL雙向配置已經(jīng)成功,那么,換另一臺電腦來訪問本機(jī)服務(wù)器如何處理呢?很簡單,把 d:/mykeys/client.p12 復(fù)制到該機(jī)器,然后執(zhí)行 3 步驟,將這個證書導(dǎo)入到該機(jī)器的 IE瀏覽器個人證書中,記得密碼是:lyl147;當(dāng)然,在那臺電腦上訪問時,要將localhost修改為本機(jī)主機(jī)名或IP地址

           

          -------------------------------------------------------------------

           

          要使你自己的WEB程序應(yīng)用SSL安全訪問,請遵循如下配置

          在你應(yīng)用的 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>

           

          你會發(fā)現(xiàn),即使使用 http://....:8080 來訪問你的應(yīng)用程序,它也會重定向為 https://....8443 訪問,也就是說,你的應(yīng)用已經(jīng)強(qiáng)制使用SSL安全訪問層

          OK,現(xiàn)在,充分享受 SSL 安全訪問服務(wù)吧

           

          此外,你還可以在你的程序中驗證客戶證書,實現(xiàn)客戶端證書登錄,具體這里不談了,下次給出完整程序

          posted on 2013-11-28 17:23 Eric_jiang 閱讀(283) 評論(0)  編輯  收藏 所屬分類: tomcat
          主站蜘蛛池模板: 怀安县| 成都市| 鹰潭市| 长垣县| 兴业县| 黔南| 沐川县| 长岭县| 凭祥市| 西昌市| 衡水市| 黎川县| 荆门市| 正安县| 琼中| 台东市| 四平市| 辽中县| 临西县| 玛沁县| 江源县| 玛纳斯县| 芮城县| 观塘区| 通山县| 乐清市| 黎城县| 吉隆县| 罗源县| 遂昌县| 昌吉市| 洛宁县| 凉城县| 阿城市| 沧源| 突泉县| 枣庄市| 富民县| 岳西县| 临邑县| 渭南市|