https理論及實踐

2022-08-17 16:45:15 字數 2127 閱讀 1382

http協議以明文的方式在網路中傳輸,安全性難以保證,https在http協議的基礎上加入ssl/tls層。tls是ssl協議的最新版本,ssl使用ssl數字證書在通訊兩端建立加密鏈路,對兩端通訊資料進行加密,從而保證通訊資料安全。

http和https協議比較如下:

ssl協議主要涉及非對稱加密和對稱加密技術。

非對稱加密,使用一對金鑰加解密資料,公鑰(public key)對外公開,私鑰自己保留(private key)。使用私鑰加密的資料只有對應的公鑰才能解密。ssl使用非對稱加密進行通訊初始化(ssl handshake),非對稱加密演算法包括rsa,、dsa、pkcs等。

對稱加密,加解密都用同乙個key。ssl在通訊初始化(handshake)後,用session key進行對稱加密通訊。對稱加密演算法包括aes-128, aes-192 and aes-256。

ssl協議通訊包括兩個階段:ssl handshake和資料傳輸。ssl handshake階段使用非對稱加密,資料傳輸階段使用對稱加密。

ssl handshake包含以下步驟:

1. 客戶端傳送"client hello"訊息,這條訊息中包含客戶端ssl版本以及其它服務端需要的資訊。

2. 服務端回覆"server hello"訊息,這條訊息包含服務端ssl版本,包含public key的ssl數字證書及其它資訊。

3. 客戶端傳送請求給ca(certificate authority,證書頒發機構)對服務端進行身份驗證。驗證失敗則拒絕建立ssl連線,否則繼續4.

4. 客戶端生成session key,用服務端的public key加密,並傳送給服務端。假如服務端也要求驗證客戶端,客戶端也需要傳送自己的證書(一般是server之間的通訊需要)。

5. 服務端用自己的private key解密出session key,並用session key加密傳送確認訊息。

資料傳輸階段如下,用ssl handshake階段生成的session key對資料進行對稱加密通訊。和非對稱加密相比,對稱加密簡單、加解密速度會更快。

每種伺服器證書安裝方法都不一樣,本文講解在tomcat上的安裝。在安裝前若證書格式和伺服器支援的證書格式不一樣,需要利用openssl轉換。

在tomcat安裝路徑下conf/server.xml增加如下ssl/tls配置,支援https:

重啟tomcat

輸入:curl -v

可看到1部分獲取到ssl證書資訊,2部分獲取網頁資料

輸入:curl -v

http協議收到302重定向狀態碼,並有location重定向新路徑

https理論與實踐

本文內容分為以下三部分 part1 https協議 普通的http請求,在通訊雙方建立了tcp連線之後,就可以進行了。而https則不同,在建立tcp連線之後,需要先進行ssl協議的握手過程,然後才是http的通訊。ssl的握手過程如下圖所示 alice想要與bob進行https的通訊,需要以下幾步...

https理論與實踐

本文內容分為以下三部分 part1 https協議 普通的http請求,在通訊雙方建立了tcp連線之後,就可以進行了。而https則不同,在建立tcp連線之後,需要先進行ssl協議的握手過程,然後才是http的通訊。ssl的握手過程如下圖所示 alice想要與bob進行https的通訊,需要以下幾步...

https理論與實踐

本文內容分為以下三部分 part1 https協議 普通的http請求,在通訊雙方建立了tcp連線之後,就可以進行了。而https則不同,在建立tcp連線之後,需要先進行ssl協議的握手過程,然後才是http的通訊。ssl的握手過程如下圖所示 alice想要與bob進行https的通訊,需要以下幾步...