- 公開密鑰加密(非對稱加密)(RSA): 私有密鑰凹联,公開密鑰,只有私有密鑰能解密
- 共享密鑰加密(對稱加密):兩把鑰匙一樣
步驟1: 客戶端通過發(fā)送 Client Hello 報文開始 SSL 通信逛拱。報文中包含客戶端支持的 SSL 的指定版本柏锄、加密組件( Cipher Suite)列表(所使用的加密算法及密鑰長度等)嚷兔。
步驟2: 服務(wù)器可進行 SSL 通信時,會以 Server Hello 報文作為應(yīng)答类腮。和客戶端一樣臊泰,在報文中包含 SSL 版本以及加密組件。服務(wù)器的加密組件內(nèi)容是從接收到的客戶端加密組件內(nèi)篩選出來的蚜枢。
步驟3: 之后服務(wù)器發(fā)送 Certificate 報文缸逃。報文中包含公開密鑰證書。
步驟4: 最后服務(wù)器發(fā)送 Server Hello Done 報文通知客戶端厂抽,最初階段的 SSL 握手協(xié)商部分結(jié)束需频。
步驟5: SSL 第一次握手結(jié)束之后,客戶端以 Client Key Exchange 報文作為回應(yīng)筷凤。報文中包含通信加密中使用的一種被稱為 Pre-master secret 的隨機密碼串昭殉。該報文已用步驟 3 中的公開密鑰進行加密。
步驟6: 接著客戶端繼續(xù)發(fā)送 Change Cipher Spec 報文藐守。該報文會提示服務(wù)器挪丢,在此報文之后的通信會采用 Pre-master secret 密鑰加密。
步驟7: 客戶端發(fā)送 Finished 報文卢厂。該報文包含連接至今全部報文的整體校驗值乾蓬。這次握手協(xié)商是否能夠成功,要以服務(wù)器是否能夠正確解密該報文作為判定標準慎恒。
步驟8: 服務(wù)器同樣發(fā)送 Change Cipher spec 報文任内。
步驟9: 服務(wù)器同樣發(fā)送 Finished 報文。
步驟10: 服務(wù)器和客戶端的 Finished 報文交換完畢之后巧号,SSL 連接就算建立完成族奢。當然,通信會受到 SSL 的保護丹鸿。從此處開始進行應(yīng)用層協(xié)議的通信越走,即發(fā)送 HTTP 請求。
步驟11: 應(yīng)用層協(xié)議通信,即發(fā)送 HTTP 響應(yīng)廊敌。
步驟12: 最后由客戶端斷開連接铜跑。斷開連接時,發(fā)送 close_notify 報文骡澈。上圖做了一些省略锅纺,這步之后再發(fā)送 TCP FIN 報文來關(guān)閉與 TCP 的通信。