tomcat從 http轉成https,並且去掉埠號

軍說網事發表於2015-10-28

 

強制使用HTTPS方式訪問Tomcat中的相關專案,於是研究了下,現將具體的步驟寫下: 

   
主要分2:tomcat能使用https--->強制使用https訪問 

1.
tomcat能使用https 

  A.
在執行命令JAVA_HOME/bin/keytool -genkey -alias tomcat-keyalg  
    RSA -keystore     C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore 

    這樣就生成了證照,將證照放到合適的地方(任意地方都可以) 

  B.
開啟tomcat目錄下的server.xml檔案並找到關於ssl的相關段 
   

Java程式碼  

1.  <!-- Define a SSL HTTP/1.1 Connector on port 8443  

2.  This connector uses the JSSE configuration, when using APR, the   

3.  connector should be using the OpenSSL style configuration  

4.  described in the APR documentation -->  

5.  <!--<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  

6.  maxThreads="150" scheme="https" secure="true"  

7.  clientAuth="false"  sslProtocol="TLS" />-->  



  C.
去掉註釋,添keystoreFile="C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore" 
  keystorePass="tomcat"
的屬性 
 
改動完成後配置為
 

Java程式碼  

1.  <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"   maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore" keystorePass="tomcat" sslProtocol="TLS" />  



  D. 若想同時去掉8443埠號,將上述配置的8443改成443

Java程式碼  

1.  <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"   maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="C:\Tomcat\GMAE3.0Tomcat\tomcat.keystore" keystorePass="tomcat" sslProtocol="TLS" /> 



  另外將

Java程式碼  

1.  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/> 

   改成

Java程式碼  

1.  <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="443" URIEncoding="UTF-8"/> 

這樣使用者也可以去掉埠同時訪問httphttps

 

  E.然後重啟tomcat就能使用HTTPS訪問 

2.
強制https訪問 

 
tomcat\conf\web.xml中的</welcome-file-list>後面加上這樣一段: 

Java程式碼  

1.  <login-config>  

2.      <!-- Authorization setting for SSL -->  

3.      <auth-method>CLIENT-CERT</auth-method>  

4.      <realm-name>Client Cert Users-only Area</realm-name>  

5.  </login-config>  

6.  <security-constraint>  

7.      <!-- Authorization setting for SSL -->  

8.      <web-resource-collection >  

9.          <web-resource-name >SSL</web-resource-name>  

10.         <url-pattern>/*</url-pattern>  

11.     </web-resource-collection>  

12.     <user-data-constraint>  

13.         <transport-guarantee>CONFIDENTIAL</transport-guarantee>  

14.     </user-data-constraint>  

15. </security-constraint>  



完成以上步驟後,在瀏覽器中輸入http的訪問地址也會自動轉換為https了。

 

相關文章