
- 客戶端發(fā)起HTTPS請求
這個沒什么好說的,就是用戶在瀏覽器里輸入一個https網址,然后連接到server的443端口。
- 服務端的配置
采用HTTPS協(xié)議的服務器必須要有一套數字證書,可以自己制作,也可以向組織申請。區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問,這套證書其實就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和一個鎖箱,只是全世界只有你一個人有這把鑰匙,你可以把鎖箱給別人,別人可以用這個鎖箱把重要的東西鎖起來,然后發(fā)給你,因為只有你一個人有這把鑰匙,所以只有你才能看到這把鎖箱里的東西。
- 傳送證書
這個證書其實就是公鑰(鎖箱),只是包含了很多信息,如證書的簽發(fā)者、過期時間等等。
- 客戶端解析證書
這部分工作是有客戶端的TLS來完成的,首先會驗證公鑰是否有效,比如簽發(fā)者、過期時間等等。
如果發(fā)現異常,則會彈出一個警告框,提示證書存在問題。
如果證書沒有問題,那么就生成一個隨機值。然后用證書對該隨機值進行加密。就好像上面說的,把隨機值用鎖箱鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容。
- 傳送加密信息
這部分傳送的是用證書加密后的隨機值,目的就是讓服務端得到這個隨機值,以后客戶端和服務端的通信就可以通過這個隨機值來進行加密解密了。
- 服務端解密信息
服務端用私鑰解密后,得到了客戶端傳過來的隨機值(私鑰),然后把內容通過該值進行對稱加密。所謂對稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密算法夠彪悍,私鑰夠復雜,數據就夠安全。
- 傳輸加密后的信息
這部分信息是服務端用私鑰加密后的信息,可以在客戶端被還原。
- 客戶端解密信息
客戶端用之前生成的私鑰解密服務端傳過來的信息,于是獲取了解密后的內容。整個過程第三方即使監(jiān)聽到了數據,也束手無策。
根據個人理解,自己手動又畫了一遍,加深印象。畫的不好,如有錯誤,望各位老師指點。
