鏈接:https://www.cnblogs.com/xiaolincoding/p/12442435.html#4815399
首先進行 TCP 的三次握手鏈接過程,之后開始 SSL / TLS 協議的流程,SSL / TLS 協議的握手階段也可分為四個階段:
第一階段:
客戶端向服務端發送加密通信請求並攜帶
1. 客戶端支持 SSL / TLS 版本
2. 客戶端產生的隨機數,用於生成最后的會話秘鑰。
3. 客戶端支持的密碼套件
版本和密碼套件由服務器進行選擇
第二階段:
服務器在收到客戶端發來的請求后,選擇上述版本和密碼套件后,同樣生成一個隨機數,並攜帶服務器的數字證書(內含服務器的公鑰)發送給客戶端。
第三階段:
客戶端收到回應后會使用游覽器或操作系統中的 CA 公鑰對數字證書的正確性進行驗證,成功后會再次生成一個隨機數,並使用數字證書中的服務器公鑰進行加密發送給服務器。
同時發送結束握手階段的通知,並攜帶握手階段的數據摘要供服務器驗證。
第四階段:
服務器收到回應后同樣會發送結束握手通知,並攜帶握手階段的數據摘要供服務器驗證。
這時客戶端和服務器都有三個隨機數,二者都會通過這三個隨機數計算出會話秘鑰,之后就用這個會話秘鑰進行通話。