HTTPS建設(shè)使用的方案教程解析
時間:2022-05-24 23:42:01 | 來源:網(wǎng)絡營銷
時間:2022-05-24 23:42:01 來源:網(wǎng)絡營銷
隨著網(wǎng)絡不斷融入日常生活和工作當中,網(wǎng)絡安全問題一直都是一個不能忽略的問題。據(jù)CNCERT監(jiān)測發(fā)現(xiàn),2015年網(wǎng)頁仿冒、拒絕服務攻擊等已經(jīng)形成成熟地下產(chǎn)業(yè)鏈的威脅仍然呈現(xiàn)增長趨勢,針對中國網(wǎng)站的仿冒頁面(URL鏈接)191699個,較2014年增長85.7%,涉及IP地址20488個,較2014年增長199.4%。網(wǎng)頁篡改、網(wǎng)站后門等攻擊事件層出不窮,黨政機關(guān)、科研機構(gòu)、重要行業(yè)單位網(wǎng)站依然是黑客組織攻擊特別是APT攻擊的重點目標。2015年被植入后門的中國網(wǎng)站數(shù)量為75028個,較2014年增長86.7%,其中政府網(wǎng)站為3514個,較2014年增長130%。
2014年底,百度已對部分地區(qū)開放HTTPS加密搜索服務,隨后,百度實行全站化HTTPS安全加密服務,百度HTTPS安全加密已覆蓋主流瀏覽器,旨在用戶打造了一個更隱私化的互聯(lián)網(wǎng)空間、加速了國內(nèi)互聯(lián)網(wǎng)的HTTPS化。同時也希望更多網(wǎng)站加入到HTTPS的隊伍中來,為網(wǎng)絡安全貢獻一份力量。在此,我向大家詳細介紹一下HTTPS,后續(xù)還會有更詳細深入的方案教程推出,各位敬請期待。
一、HTTPS是什么? HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細內(nèi)容就需要SSL。
HTTPS存在不同于HTTP的默認端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統(tǒng)提供了身份驗證與加密通訊方法。現(xiàn)在它被廣泛用于萬維網(wǎng)上安全敏感的通訊,例如交易支付方面。
傳統(tǒng)的HTTP模式,存在著大量的灰色中間環(huán)節(jié),相關(guān)信息很容易被竊取,但HTTPS卻是通過認證用戶與服務器,將數(shù)據(jù)準確地發(fā)送到客戶機與服務器,并采用加密方式以防數(shù)據(jù)中途被盜取,大大降低了第三方竊取信息、篡改冒充身份的風險(具體可查看億企邦《HTTP與HTTPS的區(qū)別》的相關(guān)介紹)。
二、HTTPS安全原理解析 HTTPS主要由有兩部分組成:HTTP + SSL / TLS,也就是在HTTP上又加了一層處理加密信息的模塊。服務端和客戶端的信息傳輸都會通過TLS進行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。HTTPS與HTTP的原理區(qū)別可以觀察下圖:
HTTP工作原理: ①、客戶端的瀏覽器首先要通過網(wǎng)絡與服務器建立連接,該連接是通過TCP來完成的,一般TCP連接的端口號是80。 建立連接后,客戶機發(fā)送一個請求給服務器,請求方式的格式為:統(tǒng)一資源標識符(URL)、協(xié)議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和許可內(nèi)容。
②、服務器接到請求后,給予相應的響應信息,其格式為一個狀態(tài)行,包括信息的協(xié)議版本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務器信息、實體信息和可能的內(nèi)容。
HTTPS的工作原理: ①、客戶端將它所支持的算法列表和一個用作產(chǎn)生密鑰的隨機數(shù)發(fā)送給服務器;
②、服務器從算法列表中選擇一種加密算法,并將它和一份包含服務器公用密鑰的證書發(fā)送給客戶端;該證書還包含了用于認證目的的服務器標識,服務器同時還提供了一個用作產(chǎn)生密鑰的隨機數(shù);
③、客戶端對服務器的證書進行驗證(有關(guān)驗證證書,可以參考數(shù)字簽名),并抽取服務器的公用密鑰;然后,再產(chǎn)生一個稱作pre_master_secret的隨機密碼串,并使用服務器的公用密鑰對其進行加密(參考非對稱加/解密),并將加密后的信息發(fā)送給服務器;
④、客戶端與服務器端根據(jù)pre_master_secret以及客戶端與服務器的隨機數(shù)值獨立計算出加密和MAC密鑰(參考DH密鑰交換算法)。
⑤、客戶端將所有握手消息的MAC值發(fā)送給服務器;
⑥、服務器將所有握手消息的MAC值發(fā)送給客戶端。
HTTPS的數(shù)據(jù)加密性: HTTPS中數(shù)據(jù)的保密性主要是通過加密完成的。加密算法一般分為兩種,一種是非對稱加密(也叫公鑰加密),另外一種是對稱加密(也叫密鑰加密)。
HTTPS使用非對稱加解密主要有兩個作用,一個是密鑰協(xié)商,另外可以用來做數(shù)字簽名。所謂密鑰協(xié)商簡單說就是根據(jù)雙方各自的信息計算得出雙方傳輸內(nèi)容時對稱加解密需要使用的密鑰。如下圖:
對稱加密就是加密和解密都使用的是同一個密鑰。如下圖:
HTTS多次握手和復雜的加密機制有效的加大了網(wǎng)站的安全性,加密機制與認證機制可以減少網(wǎng)站被劫持和假冒的風險!
三、搭建HTTPS網(wǎng)站的準備工作 簡單來說,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,所以HTTPS網(wǎng)站搭建中比較重要的內(nèi)容都是圍繞著SSL證書進行的。
那我們應該做什么準備工作,如下圖:
網(wǎng)站選型: HTTPS會提升網(wǎng)站安全性,同樣也拉高技術(shù)成本,所以我們建議一些涉及到用戶隱私信息的網(wǎng)站進行HTTPS建設(shè),公開性的內(nèi)容是根據(jù)網(wǎng)站自身情況進行選擇;
證書申請: ①、CSR文件制作:申請SSL證書之前,需要制作CSR文件,CSR,Certificate Signing Request,是制作SSL 證書的必要步驟。一個 CSR 文件中描述了 SSL 證書持有人的信息(如個人姓名或公司名稱)、聯(lián)系地址等,用于驗證 SSL 證書和域名是同一個人持有,以確保網(wǎng)站的合法性。制作完成后向 SSL 證書提供商上傳這個文件,以獲得最終的 SSL 證書。
在申請服務器證書時,不要出現(xiàn)某些特殊字符,否則在您提交CSR后,會出現(xiàn)"105"的錯誤代碼。這個錯誤是由于在您生成CSR時,輸入的信息中包含一些特殊字符,如:(@,#,&,!,等等,例如:您可以將"&"用"and"代替)。
在您生成CSR時,公用名(Common Name)是必須填寫的,但許多客戶填寫這一項時,經(jīng)常填錯或不符合標準。
公用名(Common Name) 是您的主機名+域名,比如:www.mahaixiang.cn的服務器證書是頒發(fā)給某一臺主機的,而不是一個域,您的公用名(Common Name)必須與您要使用服務器證書的主機的全名完全相同,因為www.domain.com與domain.com是不同的。
要生成CSR文件,你必須為服務器創(chuàng)建一對密鑰對。密鑰對和證書是不可分開的,一旦您遺失了公鑰、私鑰或密碼,重新生成密鑰對后,和原來的證書就不匹配了。如果您申請的是全球信SSL證書,可以重新提交CSR免費重發(fā)證書;如果您申請的是閃快SSL證書,就必須重新付費申請證書(具體可查看億企邦《HTTP、SSL/TLS和HTTPS協(xié)議的區(qū)別與聯(lián)系》的相關(guān)介紹)。
②、CA認證證書申請:將CSR提交給CA,CA一般有2種認證方式:
a、域名認證:一般通過對管理員郵箱認證的方式,這種方式認證速度快,但是簽發(fā)的證書中沒有企業(yè)的名稱;
b、企業(yè)文檔認證:需要提供企業(yè)的營業(yè)執(zhí)照。
也有需要同時認證以上2種方式的證書,叫EV ssl證書,這種證書可以使IE7以上的瀏覽器地址欄變成綠色,所以認證也最嚴格。
③、證書安裝:
在收到CA的證書后,可以將證書部署上服務器,一般APACHE文件直接將KEY+CER復制到文件上,然后修改httpD.CONF文件;TOMCAT等,需要將CA簽發(fā)的證書CER文件導入JKS文件后,復制上服務器,然后修改SERVER.XML;IIS需要處理掛起的請求,將CER文件導入。
鑒于對建站成本的考慮,需要高級別ssl 證書的往往是大中型網(wǎng)站,如網(wǎng)上銀行、購物網(wǎng)站、金融證券、政府機構(gòu)等,諸如個人博客之類的小型站點完全可以先嘗試免費ssl證書。
服務器選購: 考慮到CSR和SSL證書與服務器的環(huán)境配置及功能支持有必不可分的聯(lián)系,建議在再選購服務器之前做好充分的考慮。尤其是對服務器是否支持SSL功能,是否與證書匹配等功能需要重視;
網(wǎng)站開發(fā): 由于網(wǎng)站功能與開發(fā)語言各不相同,在這就不詳細說明網(wǎng)站開發(fā)的準備工作了,HTTPS網(wǎng)站與HTTP網(wǎng)站在開發(fā)期間基本是一致的,只是使用協(xié)議不同。
四、HTTPS網(wǎng)站搭建中的注意事項 HTTPS網(wǎng)站的加密功能決定了在搭建過程中一定要注意一些問題:
1、衡量投入與產(chǎn)出:無論是做一個新的HTTPS站還是從HTTP轉(zhuǎn)成HTTPS的網(wǎng)站,都需要投入硬件、軟件、人力等新的成本,所以在未評估之前建議不要做;一旦做好,輕易不要關(guān)閉HTTPS網(wǎng)站倒退回HTTP,這種倒退行為很容易造成不利影響;
2、證書申請機構(gòu):在選擇申請機構(gòu)之前一定要考察核對該機構(gòu)是否有可信資質(zhì),有些機構(gòu)沒有被國際機構(gòu)認可(瀏覽器上會沒有小綠鎖),也有些機構(gòu)在訪問地域上有所限制,還有的機構(gòu)出現(xiàn)過公鑰泄露的情況,所以請慎重選擇;
3、證書的選擇:因為網(wǎng)站的開發(fā)語言、使用功能和服務器環(huán)境不同,證書的選擇也不同,所以在選擇時要考慮好需要什么證書,避免浪費成本;
4、網(wǎng)站路徑方式:在HTTP網(wǎng)站上絕對路徑和相對路徑并沒有明顯的區(qū)別,但是在HTTPS和HTTP共存的情況如果使用絕對路徑容易出現(xiàn)協(xié)議混淆的情況,如果混淆后可能會出現(xiàn)鏈接打不開,或者蜘蛛抓取失敗等現(xiàn)象,這個應該十分注意!
5、服務器的訪問速度:由于HTTPS多次握手的特性,網(wǎng)站速度是一定會受到影響的,所以在搭建網(wǎng)站的同時要注意網(wǎng)站速度的優(yōu)惠,可以適當考慮使用CDN等產(chǎn)品。
五、網(wǎng)站要不要做HTTPS? 百度站長社區(qū)對于做不做HTTPS網(wǎng)站的問題進行了相關(guān)調(diào)研,如下圖:
調(diào)研中發(fā)現(xiàn),大多數(shù)人對HTTPS持觀望態(tài)度,他們對HTTPS安全性是認可的,但是從各個層面進行考慮后,做出了目前不做HTTPS網(wǎng)站的決定,主要有以下兩種觀點:
正方觀點 1、HTTPS具有更好的加密性能,避免用戶信息泄露;
2、HTTPS復雜的傳輸方式,降低網(wǎng)站被劫持的風險;
3、搜索引擎已經(jīng)全面支持HTTPS抓取、收錄,并且會優(yōu)先展示HTTPS結(jié)果;
4、從安全角度來說個人覺得要做HTTPS,不過HTTPS可以采用登錄后展示;
5、HTTPS綠鎖表示可以提升用戶對網(wǎng)站信任程度;
6、基礎(chǔ)成本可控,證書及服務器已經(jīng)有了成型的支持方案;
7、網(wǎng)站加載速度可以通過cdn等方式進行彌補,但是安全不能忽略;
8、HTTPS是網(wǎng)絡的發(fā)展趨勢,早晚都要做;
9、可以有效防止山寨、鏡像網(wǎng)站;
反方觀點 1、HTTPS會降低用戶訪問速度,增加網(wǎng)站服務器的計算資源消耗;
2、目前搜索引擎只是收錄了小部分HTTPS內(nèi)容,應該保持觀望制度;
3、HTTPS需要申請加密協(xié)議,增加了運營成本;
4、百度目前對HTTPS的優(yōu)先展現(xiàn)效果不明顯,谷歌較為明顯;
5、技術(shù)門檻較高,無從下手;
6、目前站點不涉及私密信息,無需HTTPS;
7、兼容性有待提升,如robots不支持/聯(lián)盟廣告不支持等;
8、HTTPS網(wǎng)站的安全程度有限,該被黑還是被黑;
9、HTTPS維護比較麻煩,在搜索引擎支持HTTP的情況,沒必要做HTTPS(具體可查看億企邦《從SEO的角度來分析網(wǎng)站是否該采用HTTPS協(xié)議》的相關(guān)介紹)。
六、HTTPS的優(yōu)點與缺點 根據(jù)案例反饋,目前HTTPS的優(yōu)缺點主要分布在三方面:
1、HTTPS的優(yōu)點 安全性方面 在目前的技術(shù)背景下,HTTPS是現(xiàn)行架構(gòu)下最安全的解決方案,主要有以下幾個好處:
(1)、使用HTTPS協(xié)議可認證用戶和服務器,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務器;
(2)、HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,要比http協(xié)議安全,可防止數(shù)據(jù)在傳輸過程中不被竊取、改變,確保數(shù)據(jù)的完整性。
(3)、HTTPS是現(xiàn)行架構(gòu)下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
2、HTTPS的缺點 技術(shù)方面 (1)、相同網(wǎng)絡環(huán)境下,HTTPS協(xié)議會使頁面的加載時間延長近50%,增加10%到20%的耗電。此外,HTTPS協(xié)議還會影響緩存,增加數(shù)據(jù)開銷和功耗。
(2)、HTTPS協(xié)議的安全是有范圍的,在黑客攻擊、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用。
(3)、最關(guān)鍵的,SSL 證書的信用鏈體系并不安全。特別是在某些國家可以控制 CA 根證書的情況下,中間人攻擊一樣可行。
成本方面 (1)、SSL的專業(yè)證書需要購買,功能越強大的證書費用越高。個人網(wǎng)站、小網(wǎng)站可以選擇入門級免費證書。
(2)、SSL 證書通常需要綁定 固定IP,為服務器增加固定IP會增加一定費用;
(3)、HTTPS 連接服務器端資源占用高較高多,相同負載下會增加帶寬和服務器投入成本;
既然HTTPS有這么多缺點,那是不是就不該做呢,當然不是的,隨著技術(shù)的發(fā)展很多缺點是可以優(yōu)化和彌補的。比如:
打開速度問題完全可以通過CDN加速解決,很多IDC也在著手推出免費證書和一站式HTTPS搭建服務,HTTPS成本在未來將會大大縮?。?br>
七、百度對HTTPS的支持 2015年5月25日,百度站長平臺發(fā)布公告,宣布全面放開對https站點的收錄,https站點不再需要做任何額外工作即可被百度抓收。處于HTTPS的安全性,百度對HTTPS一直持支持態(tài)度,為了提升百度搜索對HTTPS網(wǎng)站的友好度,特別進行了一系列升級。
站長平臺:百度平臺目前已經(jīng)完美支持HTTPS驗證,并為HTTPS準備了相應的數(shù)據(jù)提交接口,第一時間對HTTPS進行數(shù)據(jù)接收。
HTTPS站點如何在平臺的驗證
在平臺添加HTTPS站點時,一定要帶上https://進行驗證,否則默認為http的站點;
百度搜索:目前Baidu Spider3.0已經(jīng)順利升級,可以正常抓取HTTPS內(nèi)容,并進行正常的收錄和索引,根據(jù)HTTPS網(wǎng)站的普及情況,還將會進行優(yōu)先展示HTTPS結(jié)果等策略升級(具體可查看億企邦《百度升級HTTPS認證工具:優(yōu)先抓取和展現(xiàn)HTTPS的鏈接》的相關(guān)介紹)。
其他支持:目前百度各方面也在全力支持HTTPS,已經(jīng)推出HTTPS服務有百度開放云的CDN和云主機。
HTTS多次握手和復雜的加密機制有效的加大了網(wǎng)站的安全性,加密機制與認證機制可以減少網(wǎng)站被劫持和假冒的風險!
億企邦點評: 網(wǎng)站使用HTTPS需要申請安全證書,目前來說還是比較繁瑣的,對小公司來說成本有些高。不過以后會越來門檻越低,可以申請一些免費的證書來部署,或者使用已經(jīng)部署了HTTPS服務的建站工具來搭建網(wǎng)站,省去自己申請安全證書的麻煩。