Tomcat部署HTTPS協議
阿新 • • 發佈:2018-11-29
1.生成證書;
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -validity 90 -keystore "D:\tomcat.keystore"
“D:\tomcat.keystore” 生成的keystore位置和名稱
-keyalg “RSA” 加密演算法
-validity 90 有效天數
PS:值得注意的是”輸入keystore密碼”在你輸入時,並不會顯示你的密碼
2.配置Tomcat(conf資料夾中的server.xml)
新增下面程式碼
<Connector port ="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/tomcat.keystore"
keystorePass="tomcat" />
3.此時在瀏覽器位址列輸入 https://localhost:8443進行訪問進入到tomcat預設頁面則配置成功:
4.https與http協議轉換(有些頁面需要使用https訪問,有些頁面使用http訪問)
修改
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8009" />
為
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort ="443" />
修改
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/tomcat.keystore"
keystorePass="tomcat" />
為
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/tomcat.keystore"
keystorePass="tomcat" />
PS:80和443是http和https協議的預設埠號,這樣設定,是為了在瀏覽器位址列不需要輸入埠號就能訪問頁面,需要訪問https協議頁面,就直接在位址列輸入http:127.0.0.1。
5.頁面強制使用https協議(例如:登入頁面必須使用https協議)
在專案資源中的web.xml或tomcat/conf/web.xml檔案中的</welcome-file-list>
後加上:
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/login.do</url-pattern>
<url-pattern>/loginCheck.do</url-pattern>
<url-pattern>/app/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
配置完成後,使用http(不輸入埠號)協議方式進入頁面也會自動轉換為https協議進行訪問。