JavaWeb項目 實現https會話

  • 最近開發的javaweb項目需要進行軟件測評,在測評標準裏有一條標準是將系統會話進行加密,例如時下流行的https.
  • 於是上網查詢如何實現javaweb項目的https會話,資料很多,原理也不是很清晰,但是將實現步驟記錄下來,以防不時之需.
  • 首先是tomcat的配置,需要使用jdk自帶的keytool來生成證書,如果已配置java環境變量,在任何目錄啓動命令行輸入以下命令即可,若未配置java環境變量,則需要到jdk安裝目錄bin文件夾下啓動命令行.
keytool -genkeypair -alias tomcat -keyalg RSA -keystore D:\tomcat.key 
//其中-alias是證書的別名,RSA是加密算法,-keystore後是輸出證書的路徑所在
  • 執行該命令後,會要求輸入庫密碼,姓名…等等信息,y確認後,要求輸入密鑰密碼,如果想和密鑰庫密碼相同,則直接回車,如果想要不同,則輸入密鑰密碼,但是在tomcat的server.xml中需要另加配置.如圖
  • 找到tomcat安裝目錄,在conf文件夾下找到server.xml,加入如下配置
<Connector URIEncoding="UTF-8" port="7777" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="D:/tomcat.key"
    keystorePass="akalin" /> 
    <!--其中URIEncoding="UTF-8"是將get請求的編碼變成UTF-8,port是端口號,keystoreFile是證書路徑,keystorePass則是證書密碼(如果密鑰密碼和密鑰庫密碼一樣的話)-->
  • 該配置的端口號在tomcat中默認爲8443,如果要修改該端口號,應將其他Connector中的redirectPort更改爲此端口號
  • 啓動tomcat,如無異常則表示配置成功,如果存在異常,多爲密鑰密碼不對,或端口號被佔用,可以去tomcat官網有介紹具體詳情
    tomcat官網文檔
  • 然後是web.xml的配置,找到javaweb項目的web.xml文件,在其中加上如下配置
<security-constraint>   
       <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>   
       <!--如果想關閉SSL則將CONFIDENTIAL改爲NONE-->
</security-constraint>  
  • 如果想配置局部SSL,參考這篇資料
    配置局部SSL
  • 至此,javaweb項目的https會話配置完畢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章