注意:客戶端和伺服器至少必須支援一個公共密碼對,否則握手失敗。伺服器一般選擇最大的公共密碼對。
(3) 伺服器傳送其SSL數字證書。(伺服器使用帶有 SSL 的 X.509 V3 數字證書。)
如果伺服器使用 SSL V3,而伺服器應用程式(如 Web 伺服器)需要數字證書進行客戶端認證,則客戶端會發出“數字證書請求”訊息。在 “數字證書請求”訊息中,伺服器發出支援的客戶端數字證書型別的列表和可接受的CA的名稱。
如果伺服器請求客戶端數字證書,客戶端將傳送其數字證書;或者,如果沒有合適的數字證書是可用的,客戶端將傳送“沒有數字證書”警告。此警告僅僅是警告而已,但如果客戶端數字證書認證是強制性的話,伺服器應用程式將會使會話失敗。
(6) 客戶端傳送“客戶端金鑰交換”訊息。此訊息包含 pre-master secret(一個用在對稱加密金鑰生成中的 46 位元組的隨機數字),和 訊息認證程式碼( MAC )金鑰(用伺服器的公用金鑰加密的)。
如果客戶端傳送客戶端數字證書給伺服器,客戶端將發出簽有客戶端的專用金鑰的“數字證書驗證”訊息。透過驗證此訊息的簽名,伺服器可以顯示驗證客戶端數字證書的所有權。
注意: 如果伺服器沒有屬於數字證書的專用金鑰,它將無法解密 pre-master 密碼,也無法建立對稱加密演算法的正確金鑰,且握手將失敗。
(7) 客戶端使用一系列加密運算將 pre-master secret 轉化為 master secret,其中將派生出所有用於加密和訊息認證的金鑰。然後,客戶端發出“更改密碼規範” 訊息將伺服器轉換為新協商的密碼對。客戶端發出的下一個訊息(“未完成”的訊息)為用此密碼方法和金鑰加密的第一條訊息。
(8) 伺服器以自己的“更改密碼規範”和“已完成”訊息響應。
(9) SSL 握手結束,且可以傳送加密的應用程式資料。
注意:客戶端和伺服器至少必須支援一個公共密碼對,否則握手失敗。伺服器一般選擇最大的公共密碼對。
(3) 伺服器傳送其SSL數字證書。(伺服器使用帶有 SSL 的 X.509 V3 數字證書。)
如果伺服器使用 SSL V3,而伺服器應用程式(如 Web 伺服器)需要數字證書進行客戶端認證,則客戶端會發出“數字證書請求”訊息。在 “數字證書請求”訊息中,伺服器發出支援的客戶端數字證書型別的列表和可接受的CA的名稱。
如果伺服器請求客戶端數字證書,客戶端將傳送其數字證書;或者,如果沒有合適的數字證書是可用的,客戶端將傳送“沒有數字證書”警告。此警告僅僅是警告而已,但如果客戶端數字證書認證是強制性的話,伺服器應用程式將會使會話失敗。
(6) 客戶端傳送“客戶端金鑰交換”訊息。此訊息包含 pre-master secret(一個用在對稱加密金鑰生成中的 46 位元組的隨機數字),和 訊息認證程式碼( MAC )金鑰(用伺服器的公用金鑰加密的)。
如果客戶端傳送客戶端數字證書給伺服器,客戶端將發出簽有客戶端的專用金鑰的“數字證書驗證”訊息。透過驗證此訊息的簽名,伺服器可以顯示驗證客戶端數字證書的所有權。
注意: 如果伺服器沒有屬於數字證書的專用金鑰,它將無法解密 pre-master 密碼,也無法建立對稱加密演算法的正確金鑰,且握手將失敗。
(7) 客戶端使用一系列加密運算將 pre-master secret 轉化為 master secret,其中將派生出所有用於加密和訊息認證的金鑰。然後,客戶端發出“更改密碼規範” 訊息將伺服器轉換為新協商的密碼對。客戶端發出的下一個訊息(“未完成”的訊息)為用此密碼方法和金鑰加密的第一條訊息。
(8) 伺服器以自己的“更改密碼規範”和“已完成”訊息響應。
(9) SSL 握手結束,且可以傳送加密的應用程式資料。