配置Tomcat使用https協議(SpringMVC配置SSL協議)
一、生成安全證書
二、配置tomcat 伺服器
1、個人環境:
jdk 1.8 tomcat 7
2、生成安全證書:在jdk的安裝目錄下的 D:\Program Files (x86)\Java\jdk1.8.0_131\bin 目錄下有keytool.exe 這個就是sun(oracle)公司提供的生成安全證書的工具
3、建立證書的命令: keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "E:\tomcat.keystore" -validity 3650
4、命令中的引數介紹如下:
5、安全證書生成過程:名字與姓氏為域名,其它的根據具體情況輸入,我這裡輸入的密碼是123456
以上命令將生產一對非對稱金鑰和自我簽名的證書E:\tomcats.keystore.
將證書儲存到你要存放的地方,我的儲存在E:\tomcat.keystore
注意:“名字與姓氏”應該是域名,輸成了姓名,和真正執行的時候域名不符,會出問題
這裡我們在本地除錯故使用了localhost作為“名字與姓氏”(即域名)
到這裡我們就已經有了證書下面來配置tomcat
7、進入到Servers目錄下修改server.xml ,找到這個配置,新增你的證書的地址以及密碼
如果部署好程式後得在omcat 的conf 目錄下修改server.xml ,不然修改不生效
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\tomcat.keystore"
keystorePass="123456"
/>
8、到這裡已經配置完成了,下面看看訪問
選擇繼續瀏覽此網站
到這裡我們的tomcat 配置也就成功了!
但是我們希望當我們訪問某些頁面的時候http請求方式自動轉化為https協議,這樣我們還得在配置一下tomcat
9、在tomcat的conf(或Servers)下的web.xml的最後新增配置檔案實現http協議自動轉化為https 協議同時修改一下server.xml 中配置檔案的埠號:
1)、 修改了配置檔案的埠號為443,同時將server.xml 中的redirectPort 的埠都改為443
註釋之前的配置,埠號
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\tomcat.keystore"
keystorePass="tomcat"
/>
-->
// 修改埠號
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\tomcat.keystore"
keystorePass="tomcat"
/>
2)、配置檔案新增在 <welcome-file-list> </welcome-file-list> 配置檔案後面
<!--
對所有的請求都轉化為https
-->
<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>
<!--
只對 .jsp 的請求自動轉化為https
-->
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
以上二選一
在<url-pattern> 中可以配置你希望自動轉化的請求路徑 /* 、 login.html 、 login.jsp 等等。
到這裡我們的所有配置都完成了,你就不用每次寫https 只要是你在web.xml 配置檔案中指定的請求路徑都會自動轉化為https 請求方式。不然都用http方式。