標籤:java tomcat security https web
為了防止包監聽,Https屬於必須品,現在Web伺服器基本上都有直接支援https的功能,這裡記錄一下在tomcat裡面怎麼開啟https。
1. 產生Keystore (使用tomcat作為別名,RSA演算法)
Windows:
%Tomcat_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
Unix:
$Tomcat_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
按照提示輸入密碼,公司等等一系列的資訊,自動產生keystore存於使用者根目錄(${user.home}/.keystore),可以通過-keystore指定檔案儲存體路徑。
認證產生之後使用list命令查看認證內容
$Tomcat_HOME/bin>keytool -list
Note:系統中更常用的是使用openssl產生認證。
2. 在$Tomcat\conf\server.xml中修改tomcat connector,開始https connector,連接埠改成ssl的預設連接埠443,加入keystoreFile位置和keystore剛剛設定的密碼。
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 --><Connector protocol="HTTP/1.1" port="443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${user.home}/.keystore" keystorePass="********" clientAuth="false" sslProtocol="TLS"/>
Note:因為大部分人都習慣輸入http地址,為了友好,可以直接把http connector直接redirect到ssl的connector上面,只要簡單的加入連接埠重新導向(redirectPort="443")就可以了。
3. 重啟tomcat
大功告成,重啟tomcat之後的訪問都必須走https,不用擔心被輕易偷包了,當然這種https認證由於是自己產生的,沒有經過認證,會被瀏覽器警告,要產生認證認證,那就是另外一個故事了。
Note:Tomcat也支援修改web.xml的security-constraint來保證所有的訪問是通過https。
Tomcat開啟https