- 最近開發的javaweb項目需要進行軟件測評,在測評標準裏有一條標準是將系統會話進行加密,例如時下流行的https.
- 於是上網查詢如何實現javaweb項目的https會話,資料很多,原理也不是很清晰,但是將實現步驟記錄下來,以防不時之需.
- 首先是tomcat的配置,需要使用jdk自帶的keytool來生成證書,如果已配置java環境變量,在任何目錄啓動命令行輸入以下命令即可,若未配置java環境變量,則需要到jdk安裝目錄bin文件夾下啓動命令行.
keytool -genkeypair -alias tomcat -keyalg RSA -keystore D:\tomcat.key
- 執行該命令後,會要求輸入庫密碼,姓名…等等信息,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" />
- 該配置的端口號在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>
</security-constraint>
- 如果想配置局部SSL,參考這篇資料
配置局部SSL
- 至此,javaweb項目的https會話配置完畢