①. 客戶端將它所支持的算法列表和一個用作產生密鑰的隨機數發送給服務器;
②. 服務器從算法列表中選擇一種加密算法,並將它和一份包含服務器公用密鑰的證書發送給客戶端;該證書還包含了用於認證目的的服務器標識,服務器同時還提供了一個用作產生密鑰的隨機數;
③. 客戶端對服務器的證書進行驗證(有關驗證證書,可以參考數字簽名),並抽取服務器的公用密鑰;然後,再產生一個稱作pre_master_secret的隨機密碼串,並使用服務器的公用密鑰對其進行加密(參考非對稱加/解密),並將加密後的信息發送給服務器;
④. 客戶端與服務器端根據pre_master_secret以及客戶端與服務器的隨機數值獨立計算出加密和MAC密鑰(參考DH密鑰交換算法)。
⑤. 客戶端將所有握手消息的MAC值發送給服務器;
⑥. 服務器將所有握手消息的MAC值發送給客戶端。