在linux的tomcat中配置https及自動跳轉


      公司業務發展需要添加https,蘋果在2017年1月1日以后認為https是安全的所以很多網站都進行了升級。蘋果在iOS 9中引入的一項隱私保護功能,屏蔽明文http資源加載,連接必須經過更安全的https。蘋果目前允許開發者暫時關閉ATS,可以繼續使用HTTP連接,但到年底所有官方商店的應用都必須強制性使用ATS。,如果不升級蘋果端是不支持的。

  說一下證書,由於http的協議和https的協議不一樣,所以用的端口也不一樣http是80而https是443,而且https協議是由SSL+http協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。目前主流的SSL證書主要分為DV SSL 、 OV SSL 、EV SSL。

 

DV SSL

 DV SSL證書是只驗證網站域名所有權的簡易型(Class 1級)SSL證書,可10分鍾快速頒發,能起到加密傳輸的作用,但無法向用戶證明網站的真實身份。

目前市面上的免費證書都是這個類型的,只是提供了對數據的加密,但是對提供證書的個人和機構的身份不做驗證。

 

OV SSL

提供加密功能,對申請者做嚴格的身份審核驗證,提供可信身份證明。

 和DV SSL的區別在於,OV SSL 提供了對個人或者機構的審核,能確認對方的身份,安全性更高。

 所以這部分的證書申請是收費的~

 

EV SSL

 超安=EV=最安全、最嚴格 超安EV SSL證書遵循全球統一的嚴格身份驗證標准,是目前業界安全級別最高的頂級 (Class 4級)SSL證書。

 金融證券、銀行、第三方支付、網上商城等,重點強調網站安全、企業可信形象的網站,涉及交易支付、客戶隱私信息和賬號密碼的傳輸。

 這部分的驗證要求最高,申請費用也是最貴的。

我個人建議中小型網站選擇DV和OV的證書就可以了,大型的網站選擇EV。要是買證書的話我建議最好到阿里雲上購買,如果不知道在哪里購買直接打客服就好了。

在購買完證書后會有四個文件

(1)生成一個新的文件ssl-bundle.crt,如上圖最后一個文件和第二個文件分別做如下

cat STAR_hqssjt_com.crt <(echo) COMODORSAAddTrustCA.crt  > ssl-bundle.crt 

生成一個新的文件ssl-bundle.crt 

2保存新的Key

 

把這個文件進行改名

 mv hqssjt.com.key domain_com.key

3生成p12文件

openssl pkcs12 -export -in ssl-bundle.crt -inkey domain_com.key -out domain_com.p12 -name tomcat -password pass:111111

4生成tomcat使用的.jks文件

keytool -importkeystore -v -srckeystore domain_com.p12 -srcstoretype pkcs12 -destkeystore domain_com.jks -deststoretype jks -srcstorepass '111111' -deststorepass '111111'

5配置tomcatconfserver.xml文件

<Connector port=”80” 下面加入如下配置

               .......

               ......./>

 <Connector port="443"

               protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="1800" #這個要和上面一段配置的參數一致

               SSLEnabled="true"

               scheme="https"

               secure="true"

               sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"

               clientAuth="false"

               sslProtocol="TLS"

               keystoreFile="/存放密碼的路勁/domain_com.jks"

               keystorePass="111111" />

配置到這里https就配置完成了,訪問的時候要在最前面加上https否則不會自動跳轉至https,如果不加還會和以前一樣是http。以上操作我簡稱是通用模式 ,默認情況下既可以訪問到HTTP,如果需要訪問https必須在請求頭加入https才行,這里就需要和開發人員說一下把接口都換成https,這里很重要,這里就是ios和微信端需要換一下,沒必要所有的開發項目都去換,所有開發都去換這樣工作量會很大的。原因嘛,大家都懂得。

 如果老板經理需要所有項目都得是https的話,必須讓所有的開發都的換成https有一個接口不對,都訪問不到,因為下面的配置是要把所有請求流量都走HTTPS,配置下面要考慮清楚啦。

所以這里又會出現一個問題如何讓http自動跳轉至https

 

6配置tomcat使其可以自動跳轉至https,配置conf里的web.xml文件

在最后的字段中找到</login-config>4688行)和</web-app>中加入如下配置文件

 

<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>

7重啟tomcat

測試訪問 會自動跳轉至https說明配置成功了

8遇見問題總結

在(2)(3)最好兩個密碼必須一致,密碼不能設置太簡單上面111111只是示例配置真實環境不可以這樣。

在(5)的時候要寫對路徑和證書名字寫錯的話也是不正確的,這里的密碼也和上面密碼一致。

如果都配置完成了在微信里仍然訪問不到https說明微信端配置的URL錯誤了,如果你是運維那現在就不關你的事情了,應該是前端或是微信開發的問題,讓他們改一下url就好了

這里仍然還是http,所以微信端依然訪問不到頁面,要把這里改成https才行。

這里改完以后記得提醒開發一定要把調用接口的地方改成https,如果不改會造成各種問題

最后驗證

 

配置https完成。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM