自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大型網(wǎng)站HTTPS部署實(shí)踐點(diǎn)撥

網(wǎng)絡(luò) 通信技術(shù)
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer)是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版。

一、HTTPS簡(jiǎn)介

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer)是以安全為目標(biāo)的HTTP通道,簡(jiǎn)單講是HTTP的安全版。HTTP協(xié)議傳輸?shù)臄?shù)據(jù)是未加密的明文,因此使用HTTP協(xié)議傳輸隱私信息非常不安全。為了保證隱私數(shù)據(jù)能加密傳輸,網(wǎng)景公司設(shè)計(jì)了SSL(Secure Sockets Layer)協(xié)議用于對(duì)HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密,從而就誕生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定義在RFC 6101中,之后IETF對(duì)SSL 3.0進(jìn)行了升級(jí),于是出現(xiàn)了TLS(Transport Layer Security) 1.0,定義在RFC 2246。實(shí)際上我們現(xiàn)在的HTTPS都是用的TLS協(xié)議,但是由于SSL出現(xiàn)的時(shí)間比較早,并且依舊被現(xiàn)在瀏覽器所支持,因此SSL依然是HTTPS的代名詞,但無(wú)論是TLS還是SSL都是上個(gè)世紀(jì)的事情,SSL最后一個(gè)版本是3.0,今后TLS將會(huì)繼承SSL優(yōu)良血統(tǒng)繼續(xù)為我們進(jìn)行加密服務(wù)。目前TLS的版本是1.2,定義在RFC 5246中,暫時(shí)還沒(méi)有被廣泛的使用。

[[197937]]

但是網(wǎng)站使用了HTTPS加密之后,有朋友提出使用F12還能看到用戶名密碼,例如:

這是因?yàn)镠TTPS(SSL)加密是發(fā)生在應(yīng)用層與傳輸層之間,所以在傳輸層看到的數(shù)據(jù)才是經(jīng)過(guò)加密的,而我們捕捉到的http post,是應(yīng)用層的數(shù)據(jù),此時(shí)還沒(méi)有經(jīng)過(guò)加密。加密數(shù)據(jù)只有客戶端和服務(wù)器端才能得到明文,客戶端到服務(wù)端的通信過(guò)程是安全的。及時(shí)數(shù)據(jù)在傳輸過(guò)程中被抓包,由于是加密數(shù)據(jù)也難以破解,從而保護(hù)數(shù)據(jù)在傳輸過(guò)程中的安全性。

其實(shí)除HTTPS加密之外,還有控件加密,用戶需要下載安全控件才能輸入密碼,這在銀行系統(tǒng),支付寶頁(yè)面都會(huì)經(jīng)常遇到:

通過(guò)加密控件可以解決在應(yīng)用層的http post的明文密碼。

二、HTTPS的工作原理

HTTPS是有兩部分組成:HTTP + SSL / TLS,也就是在HTTP上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會(huì)通過(guò)SSL/TLS進(jìn)行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。具體是如何進(jìn)行加密、解密、驗(yàn)證的,且看下圖:

1.客戶端發(fā)起HTTPS請(qǐng)求

首先客戶端發(fā)起一個(gè)HTTPS的請(qǐng)求給服務(wù)器端,并且將瀏覽器自己支持的一套加密規(guī)則一起發(fā)送給服務(wù)端。

2.服務(wù)端證書配置

采用HTTPS協(xié)議的服務(wù)器端要有一套數(shù)字證書,可以自己制作,也可以向組織申請(qǐng)。區(qū)別就是自己頒發(fā)的證書需要客戶端驗(yàn)證通過(guò),才可以繼續(xù)訪問(wèn),而使用受信任的公司申請(qǐng)的證書一般不會(huì)彈出提示頁(yè)面。這套證書其實(shí)就是一對(duì)公鑰和私鑰。一般情況下可以快速申請(qǐng)免費(fèi)的ssl證書,而盡量避免自己生產(chǎn)證書。

服務(wù)端接收到客戶端的HTTPS請(qǐng)求后,會(huì)選擇出一種加密算法和HASH算法,以證書的形式返回給客戶端,證書還包含了公鑰、頒證機(jī)構(gòu)、網(wǎng)址、失效日期等信息。

3.傳送證書

服務(wù)器端將證書信息傳送會(huì)客戶端。

4.客戶端解析證書

這部分工作是由客戶端的TLS來(lái)完成的,首先會(huì)驗(yàn)證公鑰是否有效,比如頒發(fā)機(jī)構(gòu),過(guò)期時(shí)間等等,如果發(fā)現(xiàn)異常,則會(huì)彈出一個(gè)警告框,提示證書存在問(wèn)題。如果證書沒(méi)有問(wèn)題,那么就生成一個(gè)隨即值。然后用證書對(duì)該隨機(jī)值進(jìn)行加密,一般證書驗(yàn)證通過(guò)后,在瀏覽器的地址欄會(huì)加上一把小鎖。

5.傳送加密信息

這部分傳送的是客戶端用證書加密后的隨機(jī)值,目的就是讓服務(wù)端得到這個(gè)隨機(jī)值,以后客戶端和服務(wù)端的通信就可以通過(guò)這個(gè)隨機(jī)值來(lái)進(jìn)行加密解密。

6.服務(wù)端解密信息

服務(wù)端用私鑰解密后,得到了客戶端傳過(guò)來(lái)的隨機(jī)值(私鑰),然后把內(nèi)容通過(guò)該值進(jìn)行對(duì)稱加密。所謂對(duì)稱加密就是,將信息和私鑰通過(guò)某種算法混合在一起,這樣除非知道私鑰,不然無(wú)法獲取內(nèi)容,而正好客戶端和服務(wù)端都知道這個(gè)私鑰,所以只要加密算法夠復(fù)雜,私鑰夠復(fù)雜,數(shù)據(jù)就夠安全。

7.傳輸加密后的信息

這部分信息是服務(wù)端用私鑰加密后的信息,可以在客戶端被還原。

8.客戶端解密信息

客戶端用之前生成的私鑰解密服務(wù)端傳過(guò)來(lái)的信息,獲取了解密后的內(nèi)容。因?yàn)檫@串密鑰只有客戶端和服務(wù)端知道,所以即使中間請(qǐng)求被攔截、數(shù)據(jù)被抓包也是沒(méi)法解密數(shù)據(jù)的,以此保證了通信的安全。

三、SSL證書選擇指南

  • SL證書需要向國(guó)際公認(rèn)的證書證書認(rèn)證機(jī)構(gòu)(簡(jiǎn)稱CA,Certificate Authority)申請(qǐng)。CA機(jī)構(gòu)頒發(fā)的證書有3種類型:
  • 域名型SSL證書(DV SSL):信任等級(jí)普通,只需驗(yàn)證網(wǎng)站的真實(shí)性便可頒發(fā)證書保護(hù)網(wǎng)站。
  • 企業(yè)型SSL證書(OV SSL):信任等級(jí)強(qiáng),須要驗(yàn)證企業(yè)的身份,審核嚴(yán)格,安全性更高。

增強(qiáng)型SSL證書(EV SSL):信任等級(jí)最高,一般用于銀行證券等金融機(jī)構(gòu),審核嚴(yán)格,安全性最高,同時(shí)可以激活綠色網(wǎng)址欄。

此外還可以自動(dòng)生成自簽名證書,自簽名證書一般不會(huì)被瀏覽器驗(yàn)證通過(guò),所以很少在生產(chǎn)環(huán)境中出現(xiàn),一般在內(nèi)部測(cè)試環(huán)境經(jīng)常用到。

一般情況下不同的證書,認(rèn)證等級(jí)、顯示圖標(biāo)不同,在域名的支持下、價(jià)格、保額費(fèi)用上也不同:

SSL證書廠商的選擇這里不再做過(guò)多推薦,總的原則是越大的廠商越可靠。選擇的廠商一定要提前調(diào)查好是否被信任。 如之前的沃通事件就導(dǎo)致很多公司聯(lián)系沃通更換新證書后才被瀏覽器繼續(xù)信任。

四、部署網(wǎng)站HTTPS

正式購(gòu)買后如何不是證書到網(wǎng)站,實(shí)現(xiàn)HTTPS訪問(wèn)呢?

首先在購(gòu)買證書的時(shí)候,證書廠商都會(huì)在其幫助文檔中詳述證書部署指南,一般來(lái)說(shuō)按照幫助文檔一步一步部署即可。

一般會(huì)有Apache、IIS、Nginx、Tomcat等多種部署方式,這里以Nginx為例做簡(jiǎn)單介紹。

首先是證書的申請(qǐng)和下載。作者個(gè)人自己網(wǎng)站的正式是通過(guò)騰訊云提供的免費(fèi)SSL正式申請(qǐng)服務(wù)申請(qǐng)的:

下載后如下:

在Nginx的部署目錄下的conf下建立sslkey文件夾,將上述下載后的Nginx文件下的1_www.fineops.com_bundle.crt 和2_www.fineops.com.key兩個(gè)文件上傳到sslkey中。修改nginx.conf文件,按照騰訊云幫助文檔操作即可。

這里需要注意,一般證書部署后,需要設(shè)置一些http自動(dòng)跳轉(zhuǎn)到https,這一般在幫助文檔中不會(huì)有??梢圆捎靡韵聨追N方式:

  • rewrite的方式: rewrite ^(.*)$ https://$host$1 permanent;
  • nginx的497狀態(tài)碼:error_page 497 https://$host$uri?$args;
  • 首頁(yè)的meta的刷新:
  • <meta http-equiv=”refresh” content=”0;url=https://test.com/”> (未實(shí)踐過(guò))

我們這里采用了proxy_redirect的方式,在nginx中配置:proxy_redirect http://www.fineops.com:443/ https://www.fineops.com/;實(shí)現(xiàn)自動(dòng)跳轉(zhuǎn)至https。

五、總結(jié)

HTTP轉(zhuǎn)HTTPS是趨勢(shì),技術(shù)也相對(duì)比較成熟。但是使用HTTPS之后,由于比HTTP多幾次握手和加解密的過(guò)程,所以對(duì)網(wǎng)站的性能會(huì)有一定的下降。另外部署證書的服務(wù)器一定要升級(jí)openssl,提高TSL版本,避免中間人攻擊利用等。

在HTTP轉(zhuǎn)HTTPS的過(guò)程中,主要注意頁(yè)面跳轉(zhuǎn)、第三方接口、靜態(tài)資源CDN等方面在轉(zhuǎn)HTTPS之后的測(cè)試,確保跳轉(zhuǎn)和加載沒(méi)有問(wèn)題。

責(zé)任編輯:武曉燕 來(lái)源: 運(yùn)維派
相關(guān)推薦

2015-05-04 09:56:19

HTTPS

2012-09-29 10:09:19

網(wǎng)站架構(gòu)后臺(tái)構(gòu)建架構(gòu)

2016-11-07 21:00:04

網(wǎng)站service架構(gòu)設(shè)計(jì)

2013-10-15 13:24:00

負(fù)載均衡架構(gòu)

2013-07-14 17:05:49

2020-07-28 09:45:29

LinuxCaddyHTTPS

2017-11-02 11:05:20

HTTP網(wǎng)站HTTPS網(wǎng)站免費(fèi)

2016-01-13 10:35:17

網(wǎng)站技術(shù)OpenStack云管理

2022-05-24 12:16:36

存儲(chǔ)遷移存儲(chǔ)層diff

2012-05-11 16:25:41

IBM ELSIBM大型主機(jī)IBM System

2015-12-14 10:26:40

2011-05-04 10:52:25

架構(gòu)網(wǎng)站

2014-09-26 09:53:41

系統(tǒng)架構(gòu)架構(gòu)架構(gòu)演變

2014-03-11 15:47:29

大型網(wǎng)站速度優(yōu)化運(yùn)維人員

2012-09-28 14:08:20

大型網(wǎng)站架構(gòu)大型網(wǎng)站算法算法

2017-09-11 16:34:00

2013-07-15 10:28:57

2018-07-30 13:19:05

網(wǎng)站HTTPHTTPS

2015-06-15 10:16:25

2012-01-16 09:54:37

大型網(wǎng)站
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)