HTTPS工作原理
1辜膝、客戶端使用https的URL訪問(wèn)Web服務(wù)器深啤,要求與Web服務(wù)器建立SSL連接拴魄。
2、采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書
3崖飘、Web服務(wù)器收到客戶端請(qǐng)求后榴捡,會(huì)將網(wǎng)站的證書信息傳送一份給客戶端。
這個(gè)證書只是包含了很多信息朱浴,如證書的頒發(fā)機(jī)構(gòu)薄疚、證書版本、序列號(hào)赊琳、簽名算法標(biāo)識(shí)符、簽發(fā)?姓名砰碴、有效期躏筏、公鑰信息等并附有CA的簽名
4、客戶端解析證書呈枉,驗(yàn)證證書的有效性
(1)首先瀏覽器讀取證書中的證書所有者趁尼、有效期等信息進(jìn)行一一校驗(yàn)
(2)瀏覽器開始查找操作系統(tǒng)中已內(nèi)置的受信任的證書發(fā)布機(jī)構(gòu)CA,與服務(wù)器發(fā)來(lái)的證書中的頒發(fā)者CA比對(duì)猖辫,用于校驗(yàn)證書是否為合法機(jī)構(gòu)頒發(fā)
(3)如果找不到酥泞,瀏覽器就會(huì)報(bào)錯(cuò),說(shuō)明服務(wù)器發(fā)來(lái)的證書是不可信任的啃憎。
(4)如果找到芝囤,那么瀏覽器就會(huì)從操作系統(tǒng)中取出頒發(fā)者CA 的公鑰(多數(shù)瀏覽器開發(fā)商發(fā)布版本時(shí),會(huì)事先在內(nèi)部植入常用認(rèn)證機(jī)關(guān)的公開密鑰),然后對(duì)服務(wù)器發(fā)來(lái)的證書里面的簽名進(jìn)行解密
(5)瀏覽器使用相同的hash算法計(jì)算出服務(wù)器發(fā)來(lái)的證書的hash值悯姊,將這個(gè)計(jì)算的hash值與證書中簽名做對(duì)比
(6)對(duì)比結(jié)果一致羡藐,則證明服務(wù)器發(fā)來(lái)的證書合法,沒(méi)有被冒充
(7)此時(shí)瀏覽器就可以讀取證書中的公鑰悯许,用于后續(xù)加密了
5仆嗦、客戶端隨機(jī)產(chǎn)生一個(gè)用于通訊的隨機(jī)值(對(duì)稱密鑰),然后用服務(wù)器的公鑰對(duì)其加密先壕,傳送到服務(wù)器
6瘩扼、服務(wù)器使用私鑰解密信息,獲得隨機(jī)值(對(duì)稱密鑰)垃僚,然后把內(nèi)容通過(guò)該對(duì)稱密鑰進(jìn)行對(duì)稱加密集绰,
7、然后將加密的內(nèi)容傳輸?shù)娇蛻舳?br>
8冈在、客戶端通過(guò)之前生成的對(duì)稱密鑰來(lái)解密內(nèi)容倒慧,獲取到真正的內(nèi)容
HTTP和HTTPS區(qū)別如下
1、https協(xié)議需要到ca申請(qǐng)證書包券,一般免費(fèi)證書較少纫谅,因而需要一定費(fèi)用。
2溅固、http是超文本傳輸協(xié)議付秕,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議侍郭。
3询吴、http和https使用的是完全不同的連接方式,用的端口也不一樣亮元,前者是80猛计,后者是443。
4爆捞、http的連接很簡(jiǎn)單奉瘤,是無(wú)狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸煮甥、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議盗温,比http協(xié)議安全。
三次握手
第一次握手:建立連接時(shí)成肘,客戶端發(fā)送同步序列編號(hào)到服務(wù)器卖局,并進(jìn)入發(fā)送狀態(tài),等待服務(wù)器確認(rèn)双霍;
第二次握手:服務(wù)器收到同步序列編號(hào)砚偶,確認(rèn)并同時(shí)自己也發(fā)送一個(gè)同步序列編號(hào)+確認(rèn)標(biāo)志批销,此時(shí)服務(wù)器進(jìn)入接受狀態(tài)
第三次握手:客戶端收到服務(wù)器的發(fā)送的包,向服務(wù)器發(fā)送確認(rèn)標(biāo)志蟹演,隨后連接成功
四次揮手
第一次:客戶端向服務(wù)器發(fā)送一個(gè)帶有結(jié)束標(biāo)志的報(bào)文
第二次:服務(wù)器收到報(bào)文后风钻,像客戶端發(fā)送一個(gè)確認(rèn)序號(hào),同時(shí)通知自己相應(yīng)程序酒请,對(duì)方要求關(guān)閉連接
第三次:服務(wù)器像客戶端發(fā)送一個(gè)帶有結(jié)束標(biāo)志的報(bào)文
第四次:客戶端收到報(bào)文后骡技,向服務(wù)端發(fā)送一個(gè)確認(rèn)需要,連接關(guān)閉
我是這樣理解HTTP和HTTPS區(qū)別的
HTTP 和 HTTPS 的區(qū)別(面試承叻矗考題)
HTTP與HTTPS的區(qū)別