HTTPS協議原理

HTTPS是基於SSL的HTTP協議,簡單的說就是HTTP的安全版。HTTPS協議由當時註明廠商網景公司首創,雖然和微軟的競爭中敗北,但是HTTPS技術卻得到了傳承,當前幾乎所有的瀏覽器和服務器都能夠很好的支持HTTPS協議

依託SSL協議,Https協議能夠確保整個通信過程都是經過加密的,祕鑰隨機產生,並且能過通過數字證書驗證通信雙方的身份,以確保信息安全。其中證書中包含證書所代表的一端的公鑰,以及一些基本信息。通過數字簽名能夠校驗證書的真實性。通信的內容使用對稱加密的方式進行加密,通信兩端約定好通信密碼後,通過公鑰對密碼進行加密傳輸,只有改公鑰的私鑰,也就是通信的另一端能夠解密獲得通信密碼,這樣既保證通信的安全,也使加密性能和時間成本可控。

HTTPS既支持單項認證,也支持雙向認證

單項認證需要服務端提供證書即可,客戶端通過服務端證書校驗服務端身份;

雙向認證服務端和客戶端都需要提供證書,需要互相校驗身份

以Tomcat爲例,修改server.xml

首先,去掉註釋

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
修改爲

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"  
              maxThreads="150" scheme="https" secure="true"  
              clientAuth="false" sslProtocol="TLS"   
       keystoreFile="D:\Tools\Web\ssl\tomcat.keystore"  
       keystorePass="tomcat"  
       ciphers="tomcat"/>  

其中

屬性 描述
clientAuth 如果設爲true,表示Tomcat要求所有的SSL客戶出示安全證書,對SSL客戶進行身份驗證
keystoreFile 指定keystore文件的存放位置,可以指定絕對路徑,也可以指定相對於<CATALINA_HOME>(Tomcat安裝目錄)環境變量 的相對路徑。如果此項沒有設定,默認情況下,Tomcat將從當前操作系統用戶的用戶目錄下讀取名爲“.keystore”的文件。
keystorePass 指定keystore的密碼,如果此項沒有設定,在默認情況下,Tomcat將使用“changeit”作爲默認密碼。
sslProtocol 指定套接字(Socket)使用的加密/解密協議,默認值爲TLS,用戶不應該修改這個默認值
ciphers 指定套接字可用的用於加密的密碼清單,多個密碼間以逗號(,)分隔。如果此項沒有設定,在默認情況下,套接字可以使用任意一個可用的密碼。

注意HTTPS的默認端口443


啓動動本場tomcat,在瀏覽器中輸入:https://localhost/ ,即可訪問

發佈了152 篇原創文章 · 獲贊 24 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章