HTTP與HTTPS全面對比及HTTPS加密流程詳解
一、HTTP與HTTPS核心區別
特性 | HTTP | HTTPS |
---|---|---|
協議基礎 | 明文傳輸 | HTTP + SSL/TLS加密層 |
默認端口 | 80 | 443 |
加密方式 | 無加密 | 混合加密(非對稱+對稱) |
證書要求 | 不需要 | 需要CA頒發的數字證書 |
安全性 | 易被竊聽、篡改、冒充 | 防竊聽、防篡改、身份認證 |
性能開銷 | 無加密開銷 | 增加10-20%的CPU消耗 |
SEO影響 | 無特殊優勢 | 搜索引擎排名加權 |
二、HTTP協議內容組成
1. 請求報文結構
GET /index.html HTTP/1.1\r\n
Host: www.example.com\r\n
User-Agent: Mozilla/5.0\r\n
Accept: text/html\r\n
\r\n
[請求體]
-
請求行:方法(GET/POST等) + URI + 協議版本
-
請求頭:
-
通用頭:Cache-Control、Connection
-
請求頭:Accept、Authorization
-
實體頭:Content-Type、Content-Length
-
-
空行:\r\n
-
請求體:POST/PUT等方法攜帶的數據
2. 響應報文結構
HTTP/1.1 200 OK\r\n Content-Type: text/html\r\n Content-Length: 1234\r\n \r\n <!DOCTYPE html>...
-
狀態行:協議版本 + 狀態碼 + 狀態描述
-
響應頭:
-
通用頭:Date、Server
-
響應頭:Location、Set-Cookie
-
實體頭:同上
-
-
空行:\r\n
-
響應體:實際返回內容
3. 主要方法
方法 | 作用 | 冪等性 |
---|---|---|
GET | 獲取資源 | 是 |
POST | 提交數據 | 否 |
PUT | 替換資源 | 是 |
DELETE | 刪除資源 | 是 |
HEAD | 獲取報文首部 | 是 |
三、HTTPS加密機制詳解(結合了對稱加密和非對稱加密)
1. 加密類型組合
-
非對稱加密(用于密鑰交換)
-
算法:RSA、ECDHE
-
作用:安全傳輸對稱加密的密鑰
-
-
對稱加密(用于數據傳輸)
-
算法:AES、ChaCha20
-
作用:加密實際通信內容
-
2. HTTPS完整流程(TLS 1.2)
現代TLS 1.3優化
TLS 1.3(2018年發布)做了重大改進:
-
1-RTT握手:默認支持前向安全的ECDHE
-
0-RTT模式:對近期連接過的服務器可立即發送加密數據
-
簡化密碼套件:移除不安全的算法(如RSA密鑰交換)
-
加密證書:服務器證書在加密擴展中發送
3. 密鑰交換兩種方式
(1) RSA密鑰交換
(2) ECDHE密鑰交換(前向安全)
密鑰交換算法對比
特性 | RSA密鑰交換 | ECDHE密鑰交換 |
---|---|---|
前向安全性 | 無 | 有 |
密鑰生成開銷 | 服務器低 | 雙方都需要計算 |
主流支持 | TLS 1.2及以下 | TLS 1.2/1.3首選 |
密鑰材料 | 靜態服務器密鑰 | 臨時密鑰對 |
4. 會話密鑰生成
雙方使用以下參數生成相同的會話密鑰:
-
Client Random
-
Server Random
-
Premaster Secret
通過PRF(偽隨機函數)生成:
python代碼
master\_secret = PRF(pre\_master\_secret + ClientRandom + ServerRandom)
key\_block = PRF(master\_secret + "key expansion" + ServerRandom + ClientRandom)
四、HTTPS安全增強機制
1. 證書驗證流程
-
檢查證書鏈完整性
-
驗證有效期
-
檢查域名匹配
-
吊銷狀態檢查:
-
CRL(證書吊銷列表)
-
OCSP(在線證書狀態協議)
-
OCSP Stapling(服務器提供響應)
-
2. TLS 1.3主要改進
-
1-RTT握手:簡化握手流程
-
0-RTT模式:對近期連接可立即發送數據
-
移除不安全算法:僅保留前向安全加密套件
-
加密證書傳輸:增強隱私保護
五、性能優化建議
-
會話恢復:
-
Session ID緩存
-
Session Ticket機制
-
-
證書優化:
-
使用ECDSA證書
-
選擇更短的證書鏈
-
-
協議優化:
-
啟用HTTP/2 over HTTPS
-
開啟TLS False Start
-
-
硬件加速:
-
AES-NI指令集
-
專用SSL加速卡
-
HTTPS通過巧妙的混合加密機制,既解決了對稱加密的密鑰分發問題,又避免了非對稱加密的性能瓶頸,是現代Web安全的基石。理解其工作原理有助于開發者更好地調試和優化Web應用。
六:關于https證書申請:
? ? 以下是一些常用的https證書申請,需要花錢,具體流程可以去具體的網站看,有詳細的流程,不一一贅述了。同時需要注意使用https時可能需要更改nginx相關代碼。
-
阿里云
-
騰訊云
-
certbot
-
acme.sh
-
freessl.cn