之前在面試過程中問及Https與Http有什么不同,大體都是說Https比Http多了SSL校驗疫衩,公鑰加密硅蹦,私鑰解密啥的闷煤,直到后來有一次當場被面試官指出說的完全不對童芹,才發(fā)現自己對這一個小知識點了解的如此的淺陋,所以回來查了一些資料曹傀,終于理清了Https的校驗過程,其他別的這里就不羅嗦了饲宛,直接理理Https加解密詳細過程皆愉。
先看圖。
Https.png
- 客戶端向服務器端請求連接艇抠,服務器隨后將自己的SSL證書(包含公鑰)返回給客戶端
- 客戶端對證書的真?zhèn)芜M行校驗(客戶端從本地中取出證書頒發(fā)者的公鑰幕庐,對服務器發(fā)來的證書內的簽名進行解密,然后瀏覽器使用相同hash算法計算出服務器發(fā)來的證書hash值家淤,將這個hash值與證書中的簽名做對比)
- 客戶端在第2步確認服務器端后异剥,自身隨機一個對稱密鑰
- 使用服務器公鑰對對稱密鑰進行加密
- 將使用服務器公鑰加密過后的對稱密鑰發(fā)送給服務器,服務器使用自身私鑰解密出客戶端的對稱密鑰
- 之后的通信一律使用對稱密鑰進行加密
覺得不錯的點個喜歡絮重,鼓勵一下我嘛冤寿。??。青伤。督怜。