HTTPS 和 SSL證書概況
HTTPS簡介
超文本傳輸安全協(xié)議(英語:Hypertext Transfer Protocol Secure,縮寫:HTTPS,常稱為HTTP over TLS,HTTP over SSL或HTTP Secure)是一種網(wǎng)絡(luò)安全傳輸協(xié)議。具體介紹以前先來介紹一下以前常見的HTTP,HTTP就是我們平時(shí)瀏覽網(wǎng)頁時(shí)候使用的一種協(xié)議。HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文,因此使用HTTP協(xié)議傳輸隱私信息非常不安全。HTTP使用80端口通訊,而HTTPS占用443端口通訊。在計(jì)算機(jī)網(wǎng)絡(luò)上,HTTPS經(jīng)由超文本傳輸協(xié)議(HTTP)進(jìn)行通信,但利用SSL/TLS來加密數(shù)據(jù)包。HTTPS開發(fā)的主要目的,是提供對(duì)網(wǎng)絡(luò)服務(wù)器的身份認(rèn)證,保護(hù)交換數(shù)據(jù)的隱私與完整性。
HTTPS 工作原理
HTTPS在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務(wù)端(網(wǎng)站)之間進(jìn)行一次握手,在握手過程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息。TLS/SSL協(xié)議不僅僅是一套加密傳輸?shù)膮f(xié)議,更是一件經(jīng)過藝術(shù)家精心設(shè)計(jì)的藝術(shù)品,TLS/SSL中使用了非對(duì)稱加密,對(duì)稱加密以及HASH算法。
具體描述如下:
1)瀏覽器將自己支持的一套加密規(guī)則發(fā)送給網(wǎng)站。
2)網(wǎng)站從中選出一組加密算法與HASH算法,并將自己的身份信息以證書的形式發(fā)回給瀏覽器。證書里面包含了網(wǎng)站地址,加密公鑰,以及證書的頒發(fā)機(jī)構(gòu)等信息。
3)瀏覽器獲得網(wǎng)站證書之后瀏覽器要做以下工作:
a) 驗(yàn)證證書的合法性(頒發(fā)證書的機(jī)構(gòu)是否合法,證書中包含的網(wǎng)站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄里面會(huì)顯示一個(gè)小鎖頭,否則會(huì)給出證書不受信的提示。
b) 如果證書受信任,或者是用戶接受了不受信的證書,瀏覽器會(huì)生成一串隨機(jī)數(shù)的密碼,并用證書中提供的公鑰加密。
c) 使用約定好的HASH算法計(jì)算握手消息,并使用生成的隨機(jī)數(shù)對(duì)消息進(jìn)行加密,最后將之前生成的所有信息發(fā)送給網(wǎng)站。
4)網(wǎng)站接收瀏覽器發(fā)來的數(shù)據(jù)之后要做以下的操作:
a) 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發(fā)來的握手消息,并驗(yàn)證HASH是否與瀏覽器發(fā)來的一致。
b) 使用密碼加密一段握手消息,發(fā)送給瀏覽器。
5)瀏覽器解密并計(jì)算握手消息的HASH,如果與服務(wù)端發(fā)來的HASH一致,此時(shí)握手過程結(jié)束,之后所有的通信數(shù)據(jù)將由之前瀏覽器生成的隨機(jī)密碼并利用對(duì)稱加密算法進(jìn)行加密。
HTTPS協(xié)議和HTTP協(xié)議的區(qū)別:
https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書很少,需要交費(fèi)。
http是超文本傳輸協(xié)議,信息是明文傳輸,https 則是具有安全性的ssl加密傳輸協(xié)議。
http和https使用的是完全不同的連接方式用的端口也不一樣,前者是80,后者是443。
http的連接很簡單,是無狀態(tài)的 。
HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議, 要比http協(xié)議安全。
證書的類型
實(shí)際上,我們使用的證書分很多種類型,SSL證書只是其中的一種。證書的格式是由X.509標(biāo)準(zhǔn)定義。SSL證書負(fù)責(zé)傳輸公鑰,是一種PKI(Public Key Infrastructure,公鑰基礎(chǔ)結(jié)構(gòu))證書。常見的證書根據(jù)用途不同大致有以下幾種:
1、SSL證書,用于加密HTTP協(xié)議,也就是HTTPS。
2、代碼簽名證書,用于簽名二進(jìn)制文件,比如Windows內(nèi)核驅(qū)動(dòng),F(xiàn)irefox插件,Java代碼簽名等等。
3、客戶端證書,用于加密郵件。
4、雙因素證書,網(wǎng)銀專業(yè)版使用的USB Key里面用的就是這種類型的證書。
這些證書都是由受認(rèn)證的證書頒發(fā)機(jī)構(gòu)——我們稱之為CA(Certificate Authority)機(jī)構(gòu)來頒發(fā),針對(duì)企業(yè)與個(gè)人的不同,可申請(qǐng)的證書的類型也不同,價(jià)格也不同。CA機(jī)構(gòu)頒發(fā)的證書都是受信任的證書,對(duì)于SSL證書來說,如果訪問的網(wǎng)站與證書綁定的網(wǎng)站一致就可以通過瀏覽器的驗(yàn)證而不會(huì)提示錯(cuò)誤。
SSL證書驗(yàn)證失敗有以下三點(diǎn)原因:
1、SSL證書不是由受信任的CA機(jī)構(gòu)頒發(fā)的
2、證書過期
3、訪問的網(wǎng)站域名與證書綁定的域名不一致