1. 程式人生 > >配置Tomcat使用https協議(SpringMVC配置SSL協議)

配置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方式。