作的:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

后來(lái)網(wǎng)景公司開(kāi)發(fā)了SSL(Secure Sockets Layer)技術(shù),然后它就變成了這樣的HTTP,也就是HTTPS了:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

后來(lái)爆發(fā)了與IE的世紀(jì)大戰(zhàn),網(wǎng)景敗北,SSL移交給了IETF(Internat Engineering Task Force)互聯(lián)網(wǎng)工程任務(wù)組,標(biāo)準(zhǔn)化之后變成了現(xiàn)在的TLS,現(xiàn)在一般會(huì)把它們兩個(gè)放在一起稱為SSL/TLS。本篇并不關(guān)注SSL/TLS具體是如何工作的,只是抽象的解釋下HTTPS的一個(gè)工作流程。

2. HTTPS 工作流程

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

  1. Client發(fā)起一個(gè)HTTPS(https:/demo.linianhui.dev)的請(qǐng)求,根據(jù)RFC2818的規(guī)定,Client知道需要連接Server的443(默認(rèn))端口。

  2. Server把事先配置好的公鑰證書(shū)public key certificate)返回給客戶端。

  3. Client驗(yàn)證公鑰證書(shū):比如是否在有效期內(nèi),證書(shū)的用途是不是匹配Client請(qǐng)求的站點(diǎn),是不是在CRL吊銷列表里面,它的上一級(jí)證書(shū)是否有效,這是一個(gè)遞歸的過(guò)程,直到驗(yàn)證到根證書(shū)(操作系統(tǒng)內(nèi)置的Root證書(shū)或者Client內(nèi)置的Root證書(shū))。如果驗(yàn)證通過(guò)則繼續(xù),不通過(guò)則顯示警告信息。

  4. Client使用偽隨機(jī)數(shù)生成器生成加密所使用的

    網(wǎng)友評(píng)論