一、什么是 HTTPS?
HTTPS (基于安全套接字層的超文本傳輸協(xié)議 或者是 HTTP over SSL) 是一個(gè) Netscape 開發(fā)的 Web 協(xié)議。
你也可以說:HTTPS = HTTP + SSL
HTTPS 在 HTTP 應(yīng)用層的基礎(chǔ)上使用安全套接字層作為子層。
二、為什么需要 HTTPS ?
超文本傳輸協(xié)議 (HTTP) 是一個(gè)用來通過互聯(lián)網(wǎng)傳輸和接收信息的協(xié)議。HTTP 使用請(qǐng)求/響應(yīng)的過程,因此信息可在服務(wù)器間快速、輕松而且精確的進(jìn)行傳輸。當(dāng)你訪問 Web 頁(yè)面的時(shí)候你就是在使用 HTTP 協(xié)議,但 HTTP 是不安全的,可以輕松對(duì)竊聽你跟 Web 服務(wù)器之間的數(shù)據(jù)傳輸。在很多情況下,客戶和服務(wù)器之間傳輸?shù)氖敲舾行ⅲ枰乐刮唇?jīng)授權(quán)的訪問。為了滿足這個(gè)要求,網(wǎng)景公司(Netscape)推出了HTTPS,也就是基于安全套接字層的 HTTP 協(xié)議。
三、HTTP 和 HTTPS 的相同點(diǎn)
大多數(shù)情況下,HTTP 和 HTTPS 是相同的,因?yàn)槎际遣捎猛粋€(gè)基礎(chǔ)的協(xié)議,作為 HTTP 或 HTTPS 客戶端——瀏覽器,設(shè)立一個(gè)連接到 Web 服務(wù)器指定的端口。當(dāng)服務(wù)器接收到請(qǐng)求,它會(huì)返回一個(gè)狀態(tài)碼以及消息,這個(gè)回應(yīng)可能是請(qǐng)求信息、或者指示某個(gè)錯(cuò)誤發(fā)送的錯(cuò)誤信息。系統(tǒng)使用統(tǒng)一資源定位器 URI 模式,因此資源可以被唯一指定。而 HTTPS 和 HTTP 唯一不同的只是一個(gè)協(xié)議頭(https)的說明,其他都是一樣的。
四、https和http有什么區(qū)別
●https更安全
HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全。
●https需要申請(qǐng)證書
https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書很少,需要交費(fèi),費(fèi)用大概與.COM域名差不多,每年需要交大約幾十元的費(fèi)用。而常見的http協(xié)議則沒有這一項(xiàng);
●端口不同
http使用的是大家最常見的80端口,而https連接使用的是443端口;
●狀態(tài)不同
http的連接很簡(jiǎn)單,是無(wú)狀態(tài)的。而HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比http協(xié)議安全
五、HTTPS的工作原理
1、客戶端發(fā)起HTTPS請(qǐng)求
這個(gè)沒什么好說的,就是用戶在瀏覽器里輸入一個(gè)https網(wǎng)址,然后連接到server的443端口。
2、服務(wù)端的配置
采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書,可以自己制作,也可以向組織申請(qǐng),區(qū)別就是自己頒發(fā)的證書需要客戶端驗(yàn)證通過,才可以繼續(xù)訪問,而使用受信任的公司申請(qǐng)的證書則不會(huì)彈出提示頁(yè)面(startssl就是個(gè)不錯(cuò)的選擇,有1年的免費(fèi)服務(wù))。
這套證書其實(shí)就是一對(duì)公鑰和私鑰,如果對(duì)公鑰和私鑰不太理解,可以想象成一把鑰匙和一個(gè)鎖頭,只是全世界只有你一個(gè)人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個(gè)鎖把重要的東西鎖起來,然后發(fā)給你,因?yàn)橹挥心阋粋€(gè)人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
3、傳送證書
這個(gè)證書其實(shí)就是公鑰,只是包含了很多信息,如證書的頒發(fā)機(jī)構(gòu),過期時(shí)間等等。
4、客戶端解析證書
這部分工作是有客戶端的TLS來完成的,首先會(huì)驗(yàn)證公鑰是否有效,比如頒發(fā)機(jī)構(gòu),過期時(shí)間等等,如果發(fā)現(xiàn)異常,則會(huì)彈出一個(gè)警告框,提示證書存在問題。
如果證書沒有問題,那么就生成一個(gè)隨機(jī)值,然后用證書對(duì)該隨機(jī)值進(jìn)行加密,就好像上面說的,把隨機(jī)值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內(nèi)容。
5、傳送加密信息
這部分傳送的是用證書加密后的隨機(jī)值,目的就是讓服務(wù)端得到這個(gè)隨機(jī)值,以后客戶端和服務(wù)端的通信就可以通過這個(gè)隨機(jī)值來進(jìn)行加密解密了。
6、服務(wù)段解密信息
服務(wù)端用私鑰解密后,得到了客戶端傳過來的隨機(jī)值(私鑰),然后把內(nèi)容通過該值進(jìn)行對(duì)稱加密,所謂對(duì)稱加密就是,將信息和私鑰通過某種算法混合在一起,這樣除非知道私鑰,不然無(wú)法獲取內(nèi)容,而正好客戶端和服務(wù)端都知道這個(gè)私鑰,所以只要加密算法夠彪悍,私鑰夠復(fù)雜,數(shù)據(jù)就夠安全。
7、傳輸加密后的信息
這部分信息是服務(wù)段用私鑰加密后的信息,可以在客戶端被還原。
8、客戶端解密信息
客戶端用之前生成的私鑰解密服務(wù)段傳過來的信息,于是獲取了解密后的內(nèi)容,整個(gè)過程第三方即使監(jiān)聽到了數(shù)據(jù),也束手無(wú)策。
六、站長(zhǎng)如何搭建HTTPS站點(diǎn)?
說到HTTPS站點(diǎn)的搭建,就不得不提到SSL協(xié)議,SSL是Netscape公司率先采用的網(wǎng)絡(luò)安全協(xié)議,它是在傳輸通信協(xié)議(TCP/IP)上實(shí)現(xiàn)的一種安全協(xié)議,采用公開密鑰技術(shù),SSL廣泛支持各種類型的網(wǎng)絡(luò),同時(shí)提供三種基本的安全服務(wù),它們都使用公開密鑰技術(shù)。
1、SSL的作用
(1)、認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;
(2)、加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊??;
(3)、維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。
而SSL證書指的是在SSL通信中驗(yàn)證通信雙方身份的數(shù)字文件,一般分為服務(wù)器證書和客戶端證書,我們通常說的SSL證書主要指服務(wù)器證書,SSL證書由受信任的數(shù)字證書頒發(fā)機(jī)構(gòu)CA(如VeriSign,GlobalSign,WoSign等),在驗(yàn)證服務(wù)器身份后頒發(fā),具有服務(wù)器身份驗(yàn)證和數(shù)據(jù)傳輸加密功能,分為擴(kuò)展驗(yàn)證型(EV)SSL證書、組織驗(yàn)證型(OV)SSL證書、和域名驗(yàn)證型(DV)SSL證書。
2、SSL證書申請(qǐng)的3個(gè)主要步驟
對(duì)于SSL證書的申請(qǐng),主要有以下3個(gè)步驟:
(1)、制作CSR文件
所謂CSR就是由申請(qǐng)人制作的Certificate Secure Request證書請(qǐng)求文件,制作過程中,系統(tǒng)會(huì)產(chǎn)生2個(gè)密鑰,一個(gè)是公鑰就是這個(gè)CSR文件;另外一個(gè)是私鑰,存放在服務(wù)器上。
要制作CSR文件,申請(qǐng)人可以參考WEB SERVER的文檔,一般APACHE等,使用OPENSSL命令行來生成KEY+CSR2個(gè)文件,Tomcat,JBoss,Resin等使用KEYTOOL來生成JKS和CSR文件,IIS通過向?qū)Ы⒁粋€(gè)掛起的請(qǐng)求和一個(gè)CSR文件。
(2)、CA認(rèn)證
將CSR提交給CA,CA一般有2種認(rèn)證方式:
①、域名認(rèn)證:一般通過對(duì)管理員郵箱認(rèn)證的方式,這種方式認(rèn)證速度快,但是簽發(fā)的證書中沒有企業(yè)的名稱。
②、企業(yè)文檔認(rèn)證:需要提供企業(yè)的營(yíng)業(yè)執(zhí)照,一般需要3-5個(gè)工作日。
也有需要同時(shí)認(rèn)證以上2種方式的證書,叫EV證書,這種證書可以使IE7以上的瀏覽器地址欄變成綠色,所以認(rèn)證也最嚴(yán)格。
(3)、證書的安裝
在收到CA的證書后,可以將證書部署上服務(wù)器,一般APACHE文件直接將KEY+CER復(fù)制到文件上,然后修改HTTPD.CONF文件;TOMCAT等,需要將CA簽發(fā)的證書CER文件導(dǎo)入JKS文件后,復(fù)制上服務(wù)器,然后修改SERVER.XML;IIS需要處理掛起的請(qǐng)求,將CER文件導(dǎo)入。
附:SSL的簡(jiǎn)介:
SSL是Netscape公司所提出的安全保密協(xié)議,在瀏覽器(如Internet Explorer、Netscape Navigator)和Web服務(wù)器(如Netscape的Netscape Enterprise Server、ColdFusion Server等等)之間構(gòu)造安全通道來進(jìn)行數(shù)據(jù)傳輸,SSL運(yùn)行在TCP/IP層之上、應(yīng)用層之下,為應(yīng)用程序提供加密數(shù)據(jù)通道,它采用了RC4、MD5 以及RSA等加密算法,使用40 位的密鑰,適用于商業(yè)信息的加密。
同時(shí),Netscape公司相應(yīng)開發(fā)了HTTPS協(xié)議并內(nèi)置于其瀏覽器中,HTTPS實(shí)際上就是SSL over HTTP,它使用默認(rèn)端口443,而不是像HTTP那樣使用端口80來和TCP/IP進(jìn)行通信。HTTPS協(xié)議使用SSL在發(fā)送方把原始數(shù)據(jù)進(jìn)行加密,然 后在接受方進(jìn)行解密,加密和解密需要發(fā)送方和接受方通過交換共知的密鑰來實(shí)現(xiàn),因此,所傳送的數(shù)據(jù)不容易被網(wǎng)絡(luò)黑客截獲和解密。
然而,加密和解密過程需要耗費(fèi)系統(tǒng)大量的開銷,嚴(yán)重降低機(jī)器的性能,相關(guān)測(cè)試數(shù)據(jù)表明使用HTTPS協(xié)議傳輸數(shù)據(jù)的工作效率只有使用HTTP協(xié)議傳輸?shù)氖?分之一。
假如為了安全保密,將一個(gè)網(wǎng)站所有的Web應(yīng)用都啟用SSL技術(shù)來加密,并使用HTTPS協(xié)議進(jìn)行傳輸,那么該網(wǎng)站的性能和效率將會(huì)大大降低,而且沒有這個(gè)必要,因?yàn)橐话銇碚f并不是所有數(shù)據(jù)都要求那么高的安全保密級(jí)別,所以,我們只需對(duì)那些涉及機(jī)密數(shù)據(jù)的交互處理使用HTTPS協(xié)議,這樣就做到魚與熊掌兼得??傊恍枰胔ttps 的地方,就盡量不要用。
七、免費(fèi)證書推薦
使用SSL證書不僅能讓信息的安全性更有保障,還可以提高用戶對(duì)于網(wǎng)站的信任度,但鑒于對(duì)建站成本的考慮,很多站長(zhǎng)對(duì)其望而卻步,在網(wǎng)絡(luò)上免費(fèi)始終是一個(gè)永遠(yuǎn)不過時(shí)的市場(chǎng),主機(jī)空間有免費(fèi)的,而SSL證書自然也有免費(fèi)的,此前,便有消息稱,Mozilla、思科、Akamai、IdenTrust、EFF、以及密歇根大學(xué)的研究人員將開啟Let’s Encrypt CA項(xiàng)目,計(jì)劃從今夏開始,為網(wǎng)站提供免費(fèi)SSL證書以及證書管理服務(wù)(注:如需更高級(jí)的復(fù)雜證書,則需付費(fèi)),同時(shí),還降低了證書安裝的復(fù)雜程度,安裝時(shí)間僅需20-30秒。
而需要復(fù)雜證書的往往是大中型網(wǎng)站,諸如個(gè)人博客之類的小型站點(diǎn)完全可以先嘗試免費(fèi)SSL證書,如果想要購(gòu)買低價(jià)SSL證書可查看站長(zhǎng)之家之前發(fā)布的文章:如何購(gòu)買廉價(jià)SSL證書?。
下面馬海祥博客再為大家介紹幾款免費(fèi)SSL證書,比如:CloudFlare SSL、StartSSL、Wosign沃通SSL、NameCheap等。
1、CloudFlare SSL
CloudFlare是美國(guó)一家提供CDN服務(wù)的網(wǎng)站,在世界各地都有自己的CDN服務(wù)器節(jié)點(diǎn),國(guó)內(nèi)外很多大型公司或者網(wǎng)站都在使用CloudFlare的CDN服務(wù),當(dāng)然國(guó)內(nèi)站長(zhǎng)最常用的就是CloudFlare的免費(fèi)CDN,加速也很好,CloudFlare提供的免費(fèi)SSL證書是UniversalSSL,即通用SSL,用戶無(wú)需向證書發(fā)放機(jī)構(gòu)申請(qǐng)和配置證書就可以使用的SSL證書,CloudFlare向所有用戶(包括免費(fèi)用戶)提供SSL加密功能,web界面5分鐘內(nèi)就設(shè)置好證書,24小時(shí)內(nèi)完成自動(dòng)部署,為網(wǎng)站的流量提供基于橢圓曲線數(shù)字簽名算法(ECDSA)的TLS加密服務(wù)。
2、StartSSL
StartSSL是StartCom公司旗下的SSL證書,提供免費(fèi)SSL證書服務(wù),且StartSSL被包括Chrome、Firefox、IE在內(nèi)的主流瀏覽器支持,幾乎所有的主流瀏覽器都可以正常識(shí)別StartSSL,任何個(gè)人都可以從StartSSL中申請(qǐng)到免費(fèi)一年的SSL證書。
3、Wosign沃通SSL
Wosign沃通是國(guó)內(nèi)一家提供SSL證書服務(wù)的網(wǎng)站,其免費(fèi)的SSL證書申請(qǐng)比較簡(jiǎn)單,在線開通,一個(gè)SSL證書只能對(duì)應(yīng)一個(gè)域名,支持證書狀態(tài)在線查詢協(xié)議(OCSP)。
4、NameCheap
NameCheap是一家領(lǐng)先的ICANN認(rèn)可的域名注冊(cè)和網(wǎng)站托管公司,成立于2000年,該公司提供免費(fèi)DNS解析,網(wǎng)址轉(zhuǎn)發(fā)(可隱藏原URL,支持301重定向)等服務(wù),此外,NameCheap還提供了一年的SSL證書免費(fèi)服務(wù)。
文章轉(zhuǎn)自:http://www.mahaixiang.cn/internet/1233.html如需了解更多,請(qǐng)?jiān)L問博主主頁(yè)