1. 程式人生 > >Tomcat部署HTTPS協議

Tomcat部署HTTPS協議

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協議進行訪問。