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