小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

HTTPS原理和CA證書申請(qǐng)(滿滿的干貨)

 KeepSimple 2019-02-28

眾所周知,WEB服務(wù)存在http和https兩種通信方式,http默認(rèn)采用80作為通訊端口,對(duì)于傳輸采用不加密的方式,https默認(rèn)采用443,對(duì)于傳輸?shù)臄?shù)據(jù)進(jìn)行加密傳輸

目前主流的網(wǎng)站基本上開始默認(rèn)采用HTTPS作為通信方式,一切的考慮都基于對(duì)安全的要求,那么如何對(duì)自己的網(wǎng)站配置HTTPS通信,是本文著重介紹的

本文的主要內(nèi)容包括:https加密傳輸?shù)脑怼⑷绾紊暾?qǐng)https所用的CA證書,如何配置WEB服務(wù)支持https

1、https原理通俗講解

https=http+ssl,顧名思義,https是在http的基礎(chǔ)上加上了SSL保護(hù)殼,信息的加密過程就是在SSL中完成的

首先我們先不談https,先從一個(gè)簡單的通訊原理圖講起:

圖片.png

http通信原理

客戶端發(fā)送一句client hello給服務(wù)器端,服務(wù)器端返回一句serverhello給客戶端,鑒于本文討論是https的加密主題,我們只討論信息傳輸?shù)募用軉栴}

實(shí)現(xiàn)客戶端和服務(wù)端發(fā)送的信息client hello 和server hello,即使中間的包被竊取了,也無法解密傳輸?shù)膬?nèi)容

http:client hello和server hello在通訊的過程中,以明文的形式進(jìn)行傳輸,采用wireshark抓包的效果如下圖:

圖片.png

有沒有感覺這個(gè)的信息傳輸是完全暴露在互聯(lián)網(wǎng)上面,你請(qǐng)求的所有信息都可以被窺測到,是不是感覺心一涼,不過不用擔(dān)心,我們的安全信息現(xiàn)在都是采用https的傳輸,后面講到https的時(shí)候大家心里會(huì)頓時(shí)輕松。但這不是最關(guān)鍵的,http的傳輸最大的隱患是信息劫持和篡改,如下圖:

http×××1.png

可以看到,http的信息傳輸中,信息很容易被×××給劫持,更有甚者,×××可以偽裝服務(wù)器將篡改后的信息返回給用戶,試想一下,如果×××劫持的是你的銀行信息,是不是很可怕。所以對(duì)于http傳出存在的問題可以總結(jié)如下:

(1)信息篡改:修改通信的內(nèi)容

(2)信息劫持:攔截到信息通信的內(nèi)容

這些是http不安全的體現(xiàn),說完http,我們回到本文的主題https,看下人家是怎么保護(hù)信息的,所有的請(qǐng)求信息都采用了TLS加密,如果沒有秘鑰是無法解析傳輸?shù)氖鞘裁葱畔?br>

圖片.png

對(duì)于加密傳輸存在對(duì)稱加密和非對(duì)稱加密

對(duì)稱加密

圖片.png

對(duì)稱加密傳輸

當(dāng)客戶端發(fā)送Hello字符串的時(shí)候,在進(jìn)行信息傳輸前,采用加密算法(上圖中的秘鑰S)將hello加密程JDuEW8&*21!@#進(jìn)行傳輸,即使中間被×××劫持了,如果沒有對(duì)應(yīng)的秘鑰S也無法知道傳出的信息為何物,在上圖中信息的加密和解密都是通過同一個(gè)秘鑰進(jìn)行的,對(duì)于這種加密我們稱之為對(duì)稱加密,只要A和B之間知道加解密的秘鑰,任何第三方都無法獲取秘鑰S,則在一定條件下,基本上解決了信息通信的安全問題。但在現(xiàn)實(shí)的情況下(www),實(shí)際的通訊模型遠(yuǎn)比上圖復(fù)雜,下圖為實(shí)際的通信模型

圖片.png

server和所有的client都采用同一個(gè)秘鑰S進(jìn)行加解密,但大家思考下,如果這樣的話,無異于沒有加密,請(qǐng)做下思考

由于server和所有的client都采用同一個(gè)秘鑰S,則×××們作為一個(gè)client也可以獲取到秘鑰S,此地?zé)o銀三百兩。所以在實(shí)際的通訊中,一般不會(huì)采用同一個(gè)秘鑰,而是采用不同的秘鑰加解密,如下圖

圖片.png

通過協(xié)商的方式獲取不同的秘鑰

如上圖,A和server通信采用對(duì)稱加密A算法,B和server通信采用對(duì)稱秘鑰B算法,因此可以很好的解決了不同的客戶端采用相同的秘鑰進(jìn)行通訊的問題

那現(xiàn)在又存在問題了,A通過明文傳輸和server協(xié)商采用了加密算法A,但這條信息本身是沒有加密的,因此×××們還是可以竊取到秘鑰的,整個(gè)的通訊仍然存在風(fēng)險(xiǎn)。那該如何處理呢?有人說,把這條信息(協(xié)調(diào)秘鑰的過程)再次加密,那是不是還要協(xié)商加密秘鑰,如此反復(fù),永無止境。從根本上無法解決信息通訊的安全問題

如何對(duì)協(xié)商過程進(jìn)行加密

圖片.png

非對(duì)稱加密原理圖

在密碼學(xué)跟對(duì)稱加密一起出現(xiàn)的,應(yīng)用最廣的加密機(jī)制“非對(duì)稱加密”,如上圖,特點(diǎn)是私鑰加密后的密文,只要是公鑰,都可以解密,但是反過來公鑰加密后的密文,只有私鑰可以解密。私鑰只有一個(gè)人有,而公鑰可以發(fā)給所有的人。

基于上述的特點(diǎn),我們可以得出如下結(jié)論:

(1)公鑰是開放給所有人的,但私鑰是需要保密的,存在于服務(wù)端

(2)服務(wù)器端server向client端(A、B.....)的信息傳輸是不安全的:因?yàn)樗腥硕伎梢垣@取公鑰

(3)但client端(A、B.....)向server端的信息傳輸確實(shí)安全的:因?yàn)樗借€只有server端存在

因此,如何協(xié)商加密算法的問題,我們解決了,非對(duì)稱加密算法進(jìn)行對(duì)稱加密算法協(xié)商過程。

對(duì)與非結(jié)合.png

在這里我們做個(gè)小結(jié):
信息通信采用http是不安全的,存在信息劫持、篡改的風(fēng)險(xiǎn),https是加密傳輸,是安全的通信,對(duì)于https加密的過程,我們首先介紹的對(duì)稱加密,采用對(duì)稱加密進(jìn)行通信存在秘鑰協(xié)商過程的不安全性,因此我們采用了非對(duì)稱加密算法解決了對(duì)協(xié)商過程的加密,因此https是集對(duì)稱加密和非對(duì)稱加密為一體的加密過程

安全的獲取公鑰

細(xì)心的人可能已經(jīng)注意到了如果使用非對(duì)稱加密算法,我們的客戶端A,B需要一開始就持有公鑰,要不沒法開展加密行為啊。

這下,我們又遇到新問題了,如何讓A、B客戶端安全地得到公鑰?

圖片.png

client獲取公鑰最最直接的方法是服務(wù)器端server將公鑰發(fā)送給每一個(gè)client用戶,但這個(gè)時(shí)候就出現(xiàn)了公鑰被劫持的問題,如上圖,client請(qǐng)求公鑰,在請(qǐng)求返回的過程中被×××劫持,那么我們將采用劫持后的假秘鑰進(jìn)行通信,則后續(xù)的通訊過程都是采用假秘鑰進(jìn)行,數(shù)據(jù)庫的風(fēng)險(xiǎn)仍然存在。在獲取公鑰的過程中,我們又引出了一個(gè)新的話題:如何安全的獲取公鑰,并確保公鑰的獲取是安全的, 那就需要用到終極武器了:SSL 證書(需要購買)和CA機(jī)構(gòu)

SSL證書.png

如上圖所示,在第 ② 步時(shí)服務(wù)器發(fā)送了一個(gè)SSL證書給客戶端,SSL 證書中包含的具體內(nèi)容有證書的頒發(fā)機(jī)構(gòu)、有效期、公鑰、證書持有者、簽名,通過第三方的校驗(yàn)保證了身份的合法,解決了公鑰獲取的安全性

以瀏覽器為例說明如下整個(gè)的校驗(yàn)過程:

(1)首先瀏覽器讀取證書中的證書所有者、有效期等信息進(jìn)行一一校驗(yàn)

(2)瀏覽器開始查找操作系統(tǒng)中已內(nèi)置的受信任的證書發(fā)布機(jī)構(gòu)CA,與服務(wù)器發(fā)來的證書中的頒發(fā)者CA比對(duì),用于校驗(yàn)證書是否為合法機(jī)構(gòu)頒發(fā) 

(3)如果找不到,瀏覽器就會(huì)報(bào)錯(cuò),說明服務(wù)器發(fā)來的證書是不可信任的。

(4)如果找到,那么瀏覽器就會(huì)從操作系統(tǒng)中取出  頒發(fā)者CA  的公鑰,然后對(duì)服務(wù)器發(fā)來的證書里面的簽名進(jìn)行解密

(5)瀏覽器使用相同的hash算法計(jì)算出服務(wù)器發(fā)來的證書的hash值,將這個(gè)計(jì)算的hash值與證書中簽名做對(duì)比

(6)對(duì)比結(jié)果一致,則證明服務(wù)器發(fā)來的證書合法,沒有被冒充

(7)此時(shí)瀏覽器就可以讀取證書中的公鑰,用于后續(xù)加密了

至此第一部分關(guān)于HTTPS的原理介紹已經(jīng)結(jié)束了,總結(jié)一下:

HTTPS要使客戶端與服務(wù)器端的通信過程得到安全保證,必須使用的對(duì)稱加密算法,但是協(xié)商對(duì)稱加密算法的過程,需要使用非對(duì)稱加密算法來保證安全,然而直接使用非對(duì)稱加密的過程本身也不安全,會(huì)有中間人篡改公鑰的可能性,所以客戶端與服務(wù)器不直接使用公鑰,而是使用數(shù)字證書簽發(fā)機(jī)構(gòu)頒發(fā)的證書來保證非對(duì)稱加密過程本身的安全。這樣通過這些機(jī)制協(xié)商出一個(gè)對(duì)稱加密算法,就此雙方使用該算法進(jìn)行加密解密。從而解決了客戶端與服務(wù)器端之間的通信安全問題。


2、證書獲取的方式

由于HTTPS涉及到中間機(jī)構(gòu)的校驗(yàn),且這個(gè)校驗(yàn)的過程不是無償?shù)?,需要收費(fèi),因?yàn)樾枰竦谌綑C(jī)構(gòu)申請(qǐng)CA證書,用來完成身份的驗(yàn)證過程,這個(gè)過程也就是證書申請(qǐng)的過程,本章節(jié)為實(shí)戰(zhàn),具有實(shí)際的指導(dǎo)意義。

CA證書獲取的渠道

現(xiàn)如今不比以前了,云服務(wù)的概念不僅從理論上深入到了互聯(lián)網(wǎng)應(yīng)用,而且變成了一個(gè)社會(huì)的基礎(chǔ)設(shè)施工作,世界云服務(wù)3A:亞馬遜AWS、微軟Azure、阿里云,阿里云作為國人的驕傲躋身世界三大云服務(wù)廠商,且在國內(nèi),阿里云的市場份過半,且阿里云的操作系統(tǒng)“飛天系統(tǒng)”為自主研發(fā),而不是采用開源的OpenStack。因此這些云服務(wù)廠商都提供了友好的CA證書申請(qǐng)流程,本文只以阿里云、騰訊云、AlphaSSL進(jìn)行說明申請(qǐng)的流程

(1)、阿里云

登錄阿里云控制臺(tái)(https://www.aliyun.com/)在安全找到SSL證書,如下圖:

圖片.png

找到購買證書,進(jìn)入如下流程:

圖片.png

阿里云現(xiàn)提供4家主流的國際認(rèn)證機(jī)構(gòu),其實(shí)通過阿里云進(jìn)行證書的申請(qǐng),可以理解為由阿里云代理,幫你申請(qǐng)證書。對(duì)于證書有單一域名和通配符域名證書,顧名思義,單一域名的證書,獲取的證書只能驗(yàn)證指定的一個(gè)域名的安全性,但通配符域名(如*.aa.com)所有的以*.aa.com開始的域名都可以識(shí)別,當(dāng)然這里面涉及到DV SSL 、 OV SSL 、EV SSL的概念,因?yàn)樵谫I之前一定要知道這個(gè)概念的意義,否則錢花的會(huì)不知所然。

DV SSL

DV SSL證書是只驗(yàn)證網(wǎng)站域名所有權(quán)的簡易型(Class 1級(jí))SSL證書,可10分鐘快速頒發(fā),能起到加密傳輸?shù)淖饔?,但無法向用戶證明網(wǎng)站的真實(shí)身份。

目前市面上的免費(fèi)證書都是這個(gè)類型的,只是提供了對(duì)數(shù)據(jù)的加密,但是對(duì)提供證書的個(gè)人和機(jī)構(gòu)的身份不做驗(yàn)證。

OV SSL

OV SSL,提供加密功能,對(duì)申請(qǐng)者做嚴(yán)格的身份審核驗(yàn)證,提供可信×××明。

和DV SSL的區(qū)別在于,OV SSL 提供了對(duì)個(gè)人或者機(jī)構(gòu)的審核,能確認(rèn)對(duì)方的身份,安全性更高。

所以這部分的證書申請(qǐng)是收費(fèi)的~

EV SSL

超安=EV=最安全、最嚴(yán)格 超安EV SSL證書遵循全球統(tǒng)一的嚴(yán)格身份驗(yàn)證標(biāo)準(zhǔn),是目前業(yè)界安全級(jí)別最高的頂級(jí) (Class 4級(jí))SSL證書。

金融證券、銀行、第三方支付、網(wǎng)上商城等,重點(diǎn)強(qiáng)調(diào)網(wǎng)站安全、企業(yè)可信形象的網(wǎng)站,涉及交易支付、客戶隱私信息和賬號(hào)密碼的傳輸。

這部分的驗(yàn)證要求最高,申請(qǐng)費(fèi)用也是最貴的。

圖片.png

根據(jù)保護(hù)域名的數(shù)量需求,SSL證書又分為:

單域名版:只保護(hù)一個(gè)域名,例如 www. 或者 login. 之類的單個(gè)域名

多域名版:一張證書可以保護(hù)多個(gè)域名,例如同時(shí)保護(hù) www. , www., pay.efg.com 等

通配符版:一張證書保護(hù)同一個(gè)主域名下同一級(jí)的所有子域名,不限個(gè)數(shù),形如 *. 。注意,通配符版只有 DVSSL 和 OVSSL 具有, EVSSL 不具有通配符版本。

阿里云目前已經(jīng)不提供免費(fèi)的SSL證書,即DV SSL,但目前國內(nèi)可以提供免費(fèi)的SSL證書的云廠商有騰訊云,至于什么時(shí)候收費(fèi),筆者暫時(shí)不太清楚,但至少這個(gè)時(shí)期是OK的

騰訊云

登錄騰訊云控制臺(tái)(https://cloud.tencent.com),找到SSL證書,如下圖:

圖片.png

進(jìn)入購買頁面,找到域名型免費(fèi)性(DV),點(diǎn)擊“免費(fèi)申請(qǐng)”

圖片.png

進(jìn)入域名驗(yàn)證環(huán)節(jié),需要注意:通用域名必須是指定的一個(gè)明確的域名地址,不能是通配域名,其次私鑰密碼在申請(qǐng)的過程中是選填,但在國外網(wǎng)站申請(qǐng)的時(shí)候確實(shí)必填

圖片.png

選在驗(yàn)證方式,筆者一般會(huì)通過文件的方式,直接通過nginx創(chuàng)建一個(gè)文件目錄,進(jìn)行通信就可以完成身份的驗(yàn)證,具體的驗(yàn)證過程可以參考騰訊云的詳細(xì)說明。

圖片.png

等待審核通過,一般在1-3小時(shí)的時(shí)間

筆者在申請(qǐng)的過程中是采用的國外的網(wǎng)站,說起來就是一把辛酸淚,因?yàn)閲獾牟僮髁?xí)慣和國人的習(xí)慣有很大的差異,且直接走國外申請(qǐng)需要填寫的信息很多,但也有好處,便宜。具筆者計(jì)算,一個(gè)統(tǒng)配域名在國外買在1800人民幣的樣子,但在國內(nèi)購買需要2500以上。接下來重點(diǎn)介紹AlphaSSL購買流程

AlphaSSL

申請(qǐng)網(wǎng)址:https://www./ssl-certificates/select-region/

(1):選擇所在區(qū)域,此處選擇other(國外沒有將Asia作為一個(gè)明確的區(qū)域標(biāo)識(shí)氣憤,但誰讓我們技不如人呢)

圖片.png

(2)產(chǎn)品詳情:此處注意購買統(tǒng)配的域名,這個(gè)買起來更劃算。

圖片.png

圖片.png

(3)基本信息的填寫,沒有什么需要注意的

圖片.png

(4)CSR這個(gè)步驟是最容易出錯(cuò),且不太能讓人理解的地方,筆者在這里做個(gè)簡單的普及。

圖片.png

CSR(證書請(qǐng)求文件) 包含申請(qǐng)證書所需要的相關(guān)信息,其中最重要的是域名,填寫的域名必須是你要https方式訪問的那個(gè)域名。如 或 web.,其中CSR生成的方式很多,筆者直接用了網(wǎng)上的一個(gè)生成網(wǎng)站:https:///csr_create.html

圖片.png

填寫好相關(guān)的信息,尤其是域名信息一定要正確,可以根據(jù)生成的方式進(jìn)行生成,生成之后產(chǎn)生了2個(gè)文件,一個(gè)為CSR文件,用來向CA機(jī)構(gòu)申請(qǐng)的文件,一般以CSR結(jié)尾,一個(gè)是KEY文件,這個(gè)文件一定要保存好,這個(gè)文件就是對(duì)應(yīng)第一章節(jié)將的server端的私鑰,這個(gè)信息首先是重要,如果這個(gè)KEY文件沒有保存好,是無法找回的,因?yàn)镵EY生成的過程不可逆,即使填寫的過程都一樣,生成的KEY是不通的,具有隨機(jī)性

https://support./customer/portal/articles/1223116

將生成的CRS粘貼進(jìn)入第四步點(diǎn)擊下一步就進(jìn)入了付款環(huán)節(jié),由于是國外購買,所以必須使用VISA的信用卡。一般付款之后,6小時(shí)左右證書就可以下來。當(dāng)然筆者在申請(qǐng)的過程中就把KEY文件給丟了,導(dǎo)致找客服(英文對(duì)話,核實(shí)身份),其實(shí)如果申請(qǐng)存在問題,7天內(nèi)是可以申請(qǐng)退款,其次如果你把KEY文件丟失了,可以通過找客服進(jìn)行更新,詳細(xì)可以參考:https://support./customer/portal/articles/1223116

至此,對(duì)于第二章節(jié)的SSL申請(qǐng)過程就講解 完畢,是不是很詳細(xì),筆者可是走了很多的坑,但對(duì)于SSL的申請(qǐng)是深入了解


3、配置WEB服務(wù)支持https

通過第一章節(jié)HTTPS的原理講解和第二章節(jié)對(duì)申請(qǐng)的介紹,到了我們?cè)赪EB服務(wù)器端配置支持HTTPS,由于筆者是采用的nginx+tomcat的架構(gòu)方式,因此配置的方式以nginx+tomcat的方式進(jìn)行講解

在nginx的配置文件中,新增如下配置項(xiàng),在這個(gè)地方有一個(gè)參數(shù):ssl on,如果這個(gè)參數(shù)開啟,http和https將不能共存。里面對(duì)應(yīng)的信息都可以通過CA機(jī)構(gòu)獲取到

        listen 443 ssl;
        ssl_certificate     /iyunwen/server/ssl/20180731.cer;
        ssl_certificate_key /iyunwen/server/ssl/20180731.key;
        ssl_prefer_server_ciphers on;
        ssl_session_timeout 10m;
        ssl_session_cache shared:SSL:10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";

這里給出了阿里云SSL在主流apache、nginx的配置文檔:https://help.aliyun.com/video_detail/54216.html?spm=a2c4g.11186623.4.1.WbwjQN

騰訊云SSL配置文檔https://cloud.tencent.com/document/product/400/4143

但配置nginx之后,對(duì)于tomcat需要在配置文件conf/server.xml文件中新增如下內(nèi)容

  <Valve className="org.apache.catalina.valves.RemoteIpValve"  
            remoteIpHeader="X-Forwarded-For"  
            protocolHeader="X-Forwarded-Proto"  
            protocolHeaderHttpsValue="https"/>

圖片.png

至此關(guān)于HTTPS的所有內(nèi)容已經(jīng)結(jié)束。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多