開始加密通信之前,客戶端和服務端首先必須建立連接和交換參數,這個過程叫做握手。握手階段細分為五步:
1.客戶端發送出協議版本號,一個客戶端生成的隨機數,以及客戶端支持的加密方法。
2.服務端確認雙方使用的加密方法,並給出數字證書以及一個服務器生成的隨機數。
3.客戶端確認數字證書有效,然后生成一個新的隨機數,並使用數字證書中的公鑰加密這個隨機數,發送給服務端。
4.服務端使用自己的私鑰,解密出隨機數。
5.客戶端和服務端根據約定的加密方法,使用前面的三個隨機數生成對話密鑰,用來加密接下來的對話。