1. 客戶端發(fā)起HTTPS請求
這個沒什么好說的哗脖,就是用戶在瀏覽器里輸入一個https網(wǎng)址缨称,然后連接到server的443端口缀磕。
2. 服務端的配置
采用HTTPS協(xié)議的服務器必須要有一套數(shù)字證書藐握,可以自己制作额各,也可以向組織申請晶疼。區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過酒贬,才可以繼續(xù)訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇翠霍,有1年的免費服務)锭吨。這套證書其實就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解寒匙,可以想象成一把鑰匙和一個鎖頭零如,只是全世界只有你一個人有這把鑰匙,你可以把鎖頭給別人锄弱,別人可以用這個鎖把重要的東西鎖起來考蕾,然后發(fā)給你,因為只有你一個人有這把鑰匙会宪,所以只有你才能看到被這把鎖鎖起來的東西肖卧。
3. 傳送證書
這個證書其實就是公鑰,只是包含了很多信息掸鹅,如證書的頒發(fā)機構塞帐,過期時間等等。
4. 客戶端解析證書
這部分工作是有客戶端的TLS來完成的巍沙,首先會驗證公鑰是否有效葵姥,比如頒發(fā)機構,過期時間等等赎瞎,如果發(fā)現(xiàn)異常牌里,則會彈出一個警告框,提示證書存在問題。如果證書沒有問題牡辽,那么就生成一個隨即值喳篇。然后用證書對該隨機值進行加密。就好像上面說的态辛,把隨機值用鎖頭鎖起來麸澜,這樣除非有鑰匙,不然看不到被鎖住的內(nèi)容奏黑。
5. 傳送加密信息
這部分傳送的是用證書加密后的隨機值炊邦,目的就是讓服務端得到這個隨機值,以后客戶端和服務端的通信就可以通過這個隨機值來進行加密解密了熟史。
6. 服務段解密信息
服務端用私鑰解密后馁害,得到了客戶端傳過來的隨機值(私鑰),然后把內(nèi)容通過該值進行對稱加密蹂匹。所謂對稱加密就是碘菜,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰限寞,不然無法獲取內(nèi)容忍啸,而正好客戶端和服務端都知道這個私鑰,所以只要加密算法夠彪悍履植,私鑰夠復雜计雌,數(shù)據(jù)就夠安全。
7. 傳輸加密后的信息
這部分信息是服務段用私鑰加密后的信息玫霎,可以在客戶端被還原
8. 客戶端解密信息
客戶端用之前生成的私鑰解密服務段傳過來的信息凿滤,于是獲取了解密后的內(nèi)容。整個過程第三方即使監(jiān)聽到了數(shù)據(jù)庶近,也束手無策鸭巴。