HTTPS簡介
HTTPS其實是有兩部分組成:HTTP +SSL/ TLS ,也就是在HTTP上又加了一層處理加密信息的模塊蛔琅。服務(wù)端和客戶端的信息傳輸都會通過TLS進行加密纤垂,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。具體是如何進行加密,解密跺讯,驗證的糯景,且看下圖嘁圈。
1. 客戶端發(fā)起HTTPS請求
這個沒什么好說的,就是用戶在瀏覽器里輸入一個https網(wǎng)址蟀淮,然后連接到server的443端口最住。
采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作怠惶,也可以向組織申請涨缚。區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過,才可以繼續(xù)訪問策治,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇脓魏,有1年的免費服務(wù))。這套證書其實就是一對公鑰和私鑰览妖。如果對公鑰和私鑰不太理解轧拄,可以想象成一把鑰匙和一個鎖頭,只是全世界只有你一個人有這把鑰匙讽膏,你可以把鎖頭給別人檩电,別人可以用這個鎖把重要的東西鎖起來,然后發(fā)給你,因為只有你一個人有這把鑰匙俐末,所以只有你才能看到被這把鎖鎖起來的東西料按。
這個證書其實就是公鑰,只是包含了很多信息卓箫,如證書的頒發(fā)機構(gòu)载矿,過期時間等等。
這部分工作是有客戶端的TLS來完成的烹卒,首先會驗證公鑰是否有效闷盔,比如頒發(fā)機構(gòu),過期時間等等旅急,如果發(fā)現(xiàn)異常逢勾,則會彈出一個警告框,提示證書存在問題藐吮。如果證書沒有問題溺拱,那么就生成一個隨機值。然后用證書對該隨機值進行加密谣辞。就好像上面說的迫摔,把隨機值用鎖頭鎖起來,這樣除非有鑰匙泥从,不然看不到被鎖住的內(nèi)容句占。
這部分傳送的是用證書加密后的隨機值,目的就是讓服務(wù)端得到這個隨機值躯嫉,以后客戶端和服務(wù)端的通信就可以通過這個隨機值來進行加密解密了辖众。
服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機值(私鑰)和敬,然后把內(nèi)容通過該值進行對稱加密。所謂對稱加密就是戏阅,將信息和私鑰通過某種算法混合在一起昼弟,這樣除非知道私鑰,不然無法獲取內(nèi)容奕筐,而正好客戶端和服務(wù)端都知道這個私鑰舱痘,所以只要加密算法夠彪悍,私鑰夠復(fù)雜离赫,數(shù)據(jù)就夠安全芭逝。
這部分信息是服務(wù)段用私鑰加密后的信息,可以在客戶端被還原
客戶端用之前生成的私鑰解密服務(wù)段傳過來的信息渊胸,于是獲取了解密后的內(nèi)容旬盯。整個過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無策。
HTTPS協(xié)議和HTTP協(xié)議的區(qū)別:?
https協(xié)議需要到ca申請證書胖翰,一般免費證書很少接剩,需要交費。
http是超文本傳輸協(xié)議萨咳,信息是明文傳輸懊缺,https 則是具有安全性的ssl加密傳輸協(xié)議。
http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443培他。
http的連接很簡單,是無狀態(tài)的 鹃两。
HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議舀凛, 要比http協(xié)議安全俊扳。