本篇文章給大家?guī)砹岁P(guān)于HTTPS的相關(guān)知識,其中主要介紹了瀏覽器是怎么校驗HTTPS的數(shù)字證書 ,以及HTTP協(xié)議、相關(guān)證書的概念介紹,下面一起來看一下,希望對大家有幫助。
本文解決的問題如下:
- 從HTTP協(xié)議變成HTTPS協(xié)議為何需要證書?
- HTTPS協(xié)議如何體現(xiàn)出安全(HTTPS協(xié)議原理)?
- 如何免費獲取HTTPS所需的證書以及如何部署證書到服務器?
- 瀏覽器如何驗證證書?
- 證書中包含哪些內(nèi)容?
- CA證書和網(wǎng)關(guān)證書是一個東西嗎?
免費申請證書
免費申請證書網(wǎng)站:https://freessl.cn
-
域名申請,并解析到服務器
-
證書與域名綁定
-
在服務器下載證書部署腳本,并部署
HTTPS原理
從 HTTP 協(xié)議棧層面來看,我們可以在 TCP 和 HTTP 之間插入一個安全層,所有經(jīng)過安全層的數(shù)據(jù)都會被加密或者解密,
于是HTTPS就變成了HTTP和安全層先通信,安全層再和TCP通信。在安全層完成數(shù)據(jù)的加解密過程。
加密方式:
- 對稱加密,就是雙方使用“相同的密鑰”,一方加密一方解密。
- 優(yōu)點:加解密快
- 缺點:加密密鑰易暴露,安全性低
- 非對稱加密,就是一方使用公鑰加密,另一方只能使用私鑰解密,公鑰和私鑰是唯一配對的。
- 優(yōu)點:安全
- 缺點:加解密慢
基于以上特性,傳輸數(shù)據(jù)過程采用對稱加密方式保證數(shù)據(jù)傳輸效率, 用非對稱加密方式解決密鑰易暴露問題。
-
瀏覽器發(fā)起https握手鏈接時,告知服務器自己支持的“對稱加密套件列表” 和 “非對稱加密套件列表”以及一個自己生成的“隨機數(shù)client-random”。
-
服務器收到請求后,選擇自己支持的加密方式告知瀏覽器,且返回一個“數(shù)據(jù)數(shù)service-random” 和 “服務器的數(shù)字證書” 和 頒發(fā)給服務器數(shù)字證書這個“CA機構(gòu)本身的數(shù)字證書”。
-
瀏覽器驗證“服務器數(shù)字證書”和“CA機構(gòu)數(shù)字證書”的有效性, 驗證成功后,再生成一個隨機數(shù)“pre-master”,并使用“服務器數(shù)字證書”中攜帶的“公鑰”對隨機數(shù)“pre-master”進行加密,發(fā)送給服務確認。
-
服務器利用“服務器數(shù)字證書”的“私鑰”進行解密,得到隨機數(shù)“pre-master”, 并響應瀏覽器已收到。
-
瀏覽器把之前自己生成的隨機數(shù)“client-random”、“pre-master” 以及服務器返回的“service-random” 組合在一起生成一個新的密鑰“master secret”, 之后利用新的密鑰進行與服務器之間數(shù)據(jù)的加密。
提問:
-
服務器上的證書來自哪里?
向CA機構(gòu)申請的數(shù)字證書, 部署在服務器上時,一般除了CA機構(gòu)頒發(fā)給服務的數(shù)字證書(俗稱網(wǎng)關(guān)證書),還有“CA機構(gòu)自身的數(shù)字證書”。 -
CA機構(gòu)頒發(fā)給服務器的數(shù)字證書中包含哪些內(nèi)容?
至少包含了向CA機構(gòu)申請證書時的“組織機構(gòu)/個人信息”, “證書有效期”、“證書的公鑰”、“CA機構(gòu)給到證書的數(shù)字簽名”、“CA機構(gòu)信息”等 -
服務器上只部署了服務器自己的證書,沒有CA機構(gòu)的數(shù)字證書,咋辦?
服務器上沒得CA機構(gòu)的數(shù)字證書時,瀏覽器可以從互聯(lián)網(wǎng)自動下載,但這樣可能拉長首次接口/頁面訪問的時間,還可能失敗。
瀏覽器如何驗證證書
首先, 瀏覽器利用證書中指定的hash算法對”組織機構(gòu)的明文信息”計算出信息摘要
然后,利用CA證書的公鑰來解密數(shù)字證書中的”數(shù)字簽名”,解密出來的數(shù)據(jù)也是信息摘要。
最后,判定兩個摘要信息是否相等就行。
如何證明CA證書本身不是偽造的呢?
簡單粗暴的方案是:操作系統(tǒng)內(nèi)置所有CA機構(gòu)的證書,且假設這個操作系統(tǒng)沒有被惡意入侵。
折中方案是:把CA機構(gòu)分成兩類,根CA和中間CA, 我們通常向中間CA申請證書,根CA主要給中間CA做認證用。中間CA又可以給其它中間CA認證,形成樹狀結(jié)構(gòu),一級級認證,直到找到根證書。
證書上都有證書鏈,能找到上一級機構(gòu)是什么,使用與上一步相同的算法,讓上一級機構(gòu)證實當前證書的真實性,直到追溯到根證書,而根證書只需要在操作系統(tǒng)中可查找到就任務是對的,因為根證書是行業(yè)內(nèi)瀏覽器和操作系統(tǒng)廠商的規(guī)范。
如何檢驗根證書的合法性?
根證書在安裝操作系統(tǒng)時內(nèi)置了。 內(nèi)置的根證書,是通過WebTrust國際安全審計認證的,權(quán)威證書。
如何驗證根證書是否合法,瀏覽器查找根證書是否存在操作系統(tǒng)里面,若不是則不合法,反之則合法。
WebTrust 是由兩大著名注冊會計師協(xié)會 AICPA(美國注冊會計師協(xié)會)和 CICA(加拿大注冊會計師協(xié)會)共同制定的安全審計標準,主要對互聯(lián)網(wǎng)服務商的系統(tǒng)及業(yè)務運作邏輯安全性、保密性等共計七項內(nèi)容進行近乎嚴苛的審查和鑒證。 只有通過 WebTrust 國際安全審計認證,根證書才能預裝到主流的操作系統(tǒng),并成為一個可信的認證機構(gòu)。
自簽名證書
自簽名的CA證書,需要用戶提前內(nèi)置證書在用戶電腦文件中,或者放置在服務器上。
根證書就是一種特殊的自簽名證書。?
推薦學習:《https://freessl.cn》? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?