1. 什么是HTTPS
HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer),基于安全套接字協議 SSL,是以安全為目標的 HTTP 通道,在 HTTP 的基礎上通過傳輸加密和身份認證保證了傳輸程序的安全性,
HTTP2.0和HTTP3.0都只用于HTTPS,
2. HTTPS建立SSL連接

① Client Hello:客戶端將支持 SSL 版本、加密演算法、密鑰交換演算法等發送服務端
② Server Hello:服務端確定 SSL 版本、演算法、會話 ID 發給客戶端
③ Certificate:服務端將攜帶公鑰的數字證書發給客戶端
④ Server Hello Done:通知客戶端版本和加密套件發完,準備交換密鑰
⑤ Client Key Exchange:客戶端驗證證書合法性,隨機生成premaster secret用公鑰加密發給服務端
⑥ Change Cipher Spec:通知服務端后續報文采用協商好的密鑰和加密套件
⑦ Finished:客戶端用密鑰和加密套件計算已互動訊息的Hash值發給服務端,服務端進行同樣計算,與收到的客戶端訊息解密比較,相同則協商成功
⑧ Change Cipher Spec:通知客戶端后續報文采用協商好的密鑰和加密套件
⑨ Finished:服務端用密鑰和加密套件計算已互動訊息的Hash值發給客戶端,客戶端進行同樣計算,與收到的服務端訊息解密比較,相同則協商成功
3. HTTPS和HTTP的區別
- HTTP 協議以明文方式發送內容,資料都是未加密的,安全性較差,HTTPS 資料傳輸程序是加密的,安全性較好,
- HTTP 和 HTTPS 使用的是完全不同的連接方式,用的埠也不一樣,前者是 80 埠,后者是 443 埠,
- HTTPS 協議需要到數字認證機構(Certificate Authority, CA)申請證書,一般需要一定的費用,
- HTTP 頁面回應比 HTTPS 快,主要因為 HTTP 使用 3 次握手建立連接,客戶端和服務器需要握手 3 次,而 HTTPS 除了 TCP 的 3 次握手,還需要經歷一個 SSL 協商程序,
參考:
《LeetBook》
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/302472.html
標籤:其他
上一篇:laravel部署api專案
