- 公開(kāi)密鑰加密(非對(duì)稱加密)(RSA): 私有密鑰,公開(kāi)密鑰,只有私有密鑰能解密
- 共享密鑰加密(對(duì)稱加密):兩把鑰匙一樣

步驟1: 客戶端通過(guò)發(fā)送 Client Hello 報(bào)文開(kāi)始 SSL 通信。報(bào)文中包含客戶端支持的 SSL 的指定版本、加密組件( Cipher Suite)列表(所使用的加密算法及密鑰長(zhǎng)度等)。
步驟2: 服務(wù)器可進(jìn)行 SSL 通信時(shí),會(huì)以 Server Hello 報(bào)文作為應(yīng)答。和客戶端一樣,在報(bào)文中包含 SSL 版本以及加密組件。服務(wù)器的加密組件內(nèi)容是從接收到的客戶端加密組件內(nèi)篩選出來(lái)的。
步驟3: 之后服務(wù)器發(fā)送 Certificate 報(bào)文。報(bào)文中包含公開(kāi)密鑰證書(shū)。
步驟4: 最后服務(wù)器發(fā)送 Server Hello Done 報(bào)文通知客戶端,最初階段的 SSL 握手協(xié)商部分結(jié)束。
步驟5: SSL 第一次握手結(jié)束之后,客戶端以 Client Key Exchange 報(bào)文作為回應(yīng)。報(bào)文中包含通信加密中使用的一種被稱為 Pre-master secret 的隨機(jī)密碼串。該報(bào)文已用步驟 3 中的公開(kāi)密鑰進(jìn)行加密。
步驟6: 接著客戶端繼續(xù)發(fā)送 Change Cipher Spec 報(bào)文。該報(bào)文會(huì)提示服務(wù)器,在此報(bào)文之后的通信會(huì)采用 Pre-master secret 密鑰加密。
步驟7: 客戶端發(fā)送 Finished 報(bào)文。該報(bào)文包含連接至今全部報(bào)文的整體校驗(yàn)值。這次握手協(xié)商是否能夠成功,要以服務(wù)器是否能夠正確解密該報(bào)文作為判定標(biāo)準(zhǔn)。
步驟8: 服務(wù)器同樣發(fā)送 Change Cipher spec 報(bào)文。
步驟9: 服務(wù)器同樣發(fā)送 Finished 報(bào)文。
步驟10: 服務(wù)器和客戶端的 Finished 報(bào)文交換完畢之后,SSL 連接就算建立完成。當(dāng)然,通信會(huì)受到 SSL 的保護(hù)。從此處開(kāi)始進(jìn)行應(yīng)用層協(xié)議的通信,即發(fā)送 HTTP 請(qǐng)求。
步驟11: 應(yīng)用層協(xié)議通信,即發(fā)送 HTTP 響應(yīng)。
步驟12: 最后由客戶端斷開(kāi)連接。斷開(kāi)連接時(shí),發(fā)送 close_notify 報(bào)文。上圖做了一些省略,這步之后再發(fā)送 TCP FIN 報(bào)文來(lái)關(guān)閉與 TCP 的通信。