現在越來(lái)越多的全協(xié)站長(cháng)朋友都??非常的關(guān)注HTTPS安全協(xié)議的改造方法,這是議改有效提升網(wǎng)站安全性及用戶(hù)信任度的直接有效的技術(shù)操作。今天大寶seo博客轉載一篇來(lái)自(zi)百度站長(cháng)平臺發(fā)布的造案內容┐(′д`)┌(rong),標題為《去哪網(wǎng)HTTPS改造分享》,例分通過(guò)這篇內容可以??很詳細的全協(xié)看出HTTPS安全協(xié)議的改造流程。具體內容如下:
https大大改善??了網(wǎng)站的議改安全性,減少了流量劫持,造案越安全的例分網(wǎng)站對用戶(hù)越有益。即便是全協(xié)https改造有些難度,也應當大力推進(jìn)https的議改改造。下面我們特邀了去哪網(wǎng)的造案同學(xué)進(jìn)行了關(guān)于https改造的分享?。ū疚淖髡撸喝ツ膬焊?′?`)級工程師 歐陽(yáng)何順、例分去哪兒網(wǎng)??SEO負??責人 呂令建)
一、全協(xié)理解HTTPS
先不聊HTTP和HTTPS的議改ヽ(′▽?zhuān)?ノ區別,從聊天軟件說(shuō)起,造案假設我們要實(shí)現A能發(fā)一個(gè)hello消息給B,如果我們要實(shí)現這個(gè)聊天軟件,只考慮安全性問(wèn)題,要實(shí)現A發(fā)給B的hello消息包,即使被中間人攔截到了,也無(wú)法得知消息的內容。
那么,如何做到真正的安全呢?目標是ヾ(′▽?zhuān)??A與B通信的內容,有且只有A和(′?`*)B有能力看到通信的真正內容,為了防止內容被第三方竊取,發(fā)送方可以通過(guò)密鑰S對聊天內容進(jìn)(′ω`)行加密,接收方在收到聊天內容之后(hou),再用密鑰S解密聊天內ヽ(′?`)ノ容,只要密鑰不??公開(kāi)給第三者,同時(shí)密鑰S足夠安全,我們就可以保證只有A與B知道聊天內容。
二、HTTPS的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
SEO方面:谷歌曾在2014年8月份調整搜索引擎算法,并稱(chēng)“比起同等HTTP網(wǎng)站,采用HTTP??S加密的網(wǎng)站??在搜索結果中的排名將會(huì )更高”。
安全性:盡管HTTPS并非絕對安全(//ω//),掌握根證書(shū)的機構、掌握加密算法的組織同樣可以ヽ(′▽?zhuān)?ノ進(jìn)行中間人形式的攻擊,但HTTPS仍是現行架構下(°□°)最安全的解決方案,主要有以下幾個(gè)好處:ヽ(′ー`)ノ
使用HTTPS協(xié)議可認證用戶(hù)和服務(wù)器,確保數據發(fā)送到正確的客戶(hù)機和服務(wù)器;
HTTPS協(xié)議是由SSL+H(╬?益?)TTP協(xié)議構建的可進(jìn)行加密傳輸、身??份認證的網(wǎng)絡(luò )協(xié)議,要比http協(xié)議安全,可防止數據在傳輸過(guò)程中不(/ω\)被竊取、改變,確保數據的完整性;
HTTPS是現行架構下最安全的解決方(fang)案,雖然不是絕對安全,但它大幅增加了中(zhong)間人攻擊的成本。
缺點(diǎn)
SE??O方面:據ACM CoNEXT數據顯示,使用HT(′▽?zhuān)?TPS協(xié)議會(huì )使頁(yè)面(′▽?zhuān)?的加載時(shí)間延長(cháng)近50%,增加10%到20%的??耗電,此外,HTTPS協(xié)議還會(huì )影響緩存,增加數據開(kāi)銷(xiāo)和功耗,甚至已有安全措施也會(huì )受到影響(◎_◎;)也會(huì )因此而受到影響。
經(jīng)濟方面:SSL證書(shū)需要錢(qián),功能越強大的證書(shū)費用越高,個(gè)人網(wǎng)站、小網(wǎng)站沒(méi)有必要一般不會(huì )用;
HTTPS連接緩存不如HTTP高效,大流量網(wǎng)站如非必要也不??會(huì )采用,流量成本太高;
HTTPS連接服??務(wù)器端資源占用高很多,支持訪(fǎng)客稍多的網(wǎng)站需要投入更大的成本,如果全部采用Hヽ(′▽?zhuān)?ノTTPS,基于大部分計算資源閑置的??假設的VPS的平均成本會(huì )上去;
HTTPS協(xié)議握手階段比較費時(shí),對網(wǎng)站的相應速度有負面影響,如非必要,沒(méi)有理由犧牲用戶(hù)體驗。
三、支持HTTPS的方式
增加HTTPS的支持需要在nginx或者tomcat上增加證書(shū)(證(zheng)書(shū)需要ops來(lái)購買(mǎi)),兩種方法只需要選用其中一種。我們選擇了通過(guò)nginx配置證書(shū)的方式來(lái)做HTTPS支持的事(shi)情。原因是這種方式??可以通過(guò)ops統一(′▽?zhuān)?配置證書(shū),(′_ゝ`)不需要在每臺服務(wù)器上依次配置HTTPS證書(shū),能提升配置效率。
通過(guò)tomcat配置證書(shū)
在開(kāi)發(fā)環(huán)境里時(shí),需要自己來(lái)生成證書(shū):1、生成證書(shū);2、找到j(luò )??ava的目錄;3、生成一個(gè)證書(shū)。
keytool -v-genkey -alias tomcat -keyalg RSA -keystore ~/keystore
記住生成證書(shū)時(shí)的密碼
在to??mcat的conf/server.xml 配置里增加connector
譬如,我的是server.xml
使用這種方法,直接用re??quest.getSchmeme()能夠看到https
通過(guò)nginx配置證書(shū)(shu)
在已經(jīng)購買(mǎi)好證書(shū)的前提下,可以通過(guò)以下方式配置證書(shū)。
ngin( ???)x配置
在java中通過(guò)X-Real-Scheme或d(′?_?`)j-sch獲取當前協(xié)議
SchemeUtil.java
四、代碼涉及的改動(dòng)
頁(yè)面請求的靜態(tài)??資源
js && css
后臺將jsp中域名為http://*.quanrzz.com 的js,css鏈接改為 //*.qunarzz.com
圖片
將jsp和java工程中給出的圖??片??url進(jìn)行修改(原因是當前實(shí)用的圖片服務(wù)器不能同時(shí)支持http和https),圖片的http和https域名對應關(guān)系如下:
接口??
內部接口:修改接口返回的url,統一格式為://xxx.xx.xx/;
外部接口:當調用其他業(yè)務(wù)線(xiàn)的一些接口不支持https時(shí),我們的處理方式是通過(guò)代理接口來(lái)調用這些外部接口。
五、??遇到的問(wèn)題及處理方案
nginx上對443端口的請求在header里添加https標記,需要和后端保證一致;
用戶(hù)中心個(gè)別的css和js在https環(huán)境下需要在引入時(shí)標記css/js=ssl;
同一個(gè)域名下面,部分內部調用的接口,是不需要支持https的,因此在做ng(???)inx轉發(fā)的時(shí)候,需要針對這些uri做特殊處理。
Copyright ? 2012-2018 天津九安特機電工程有限公司 版權所有 備案號: