作的:
后來網(wǎng)景公司開發(fā)了SSL(Secure Sockets Layer)技術(shù),然后它就變成了這樣的HTTP,也就是HTTPS了:
后來爆發(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)在一般會把它們兩個放在一起稱為SSL/TLS。本篇并不關(guān)注SSL/TLS具體是如何工作的,只是抽象的解釋下HTTPS的一個工作流程。
2. HTTPS 工作流程
Client發(fā)起一個HTTPS(https:/demo.linianhui.dev)的請求,根據(jù)RFC2818的規(guī)定,Client知道需要連接Server的443(默認(rèn))端口。
Server把事先配置好的公鑰證書(public key certificate)返回給客戶端。
Client驗(yàn)證公鑰證書:比如是否在有效期內(nèi),證書的用途是不是匹配Client請求的站點(diǎn),是不是在CRL吊銷列表里面,它的上一級證書是否有效,這是一個遞歸的過程,直到驗(yàn)證到根證書(操作系統(tǒng)內(nèi)置的Root證書或者Client內(nèi)置的Root證書)。如果驗(yàn)證通過則繼續(xù),不通過則顯示警告信息。
Client使用偽隨機(jī)數(shù)生成器生成加密所使用的