手把手教你在瀏覽器校驗HTTPS數(shù)字證書

本篇文章給大家?guī)砹岁P(guān)于HTTPS的相關(guān)知識,其中主要介紹了瀏覽器是怎么校驗HTTPS的數(shù)字證書 ,以及HTTP協(xié)議、相關(guān)證書的概念介紹,下面一起來看一下,希望對大家有幫助。

手把手教你在瀏覽器校驗HTTPS數(shù)字證書

本文解決的問題如下:

  • 從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數(shù)字證書

于是HTTPS就變成了HTTP和安全層先通信,安全層再和TCP通信。在安全層完成數(shù)據(jù)的加解密過程。

加密方式:

  • 對稱加密,就是雙方使用“相同的密鑰”,一方加密一方解密。
    • 優(yōu)點:加解密快
    • 缺點:加密密鑰易暴露,安全性低
  • 非對稱加密,就是一方使用公鑰加密,另一方只能使用私鑰解密,公鑰和私鑰是唯一配對的。
    • 優(yōu)點:安全
    • 缺點:加解密慢

基于以上特性,傳輸數(shù)據(jù)過程采用對稱加密方式保證數(shù)據(jù)傳輸效率, 用非對稱加密方式解決密鑰易暴露問題。

手把手教你在瀏覽器校驗HTTPS數(shù)字證書

  • 瀏覽器發(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ù)也是信息摘要。
最后,判定兩個摘要信息是否相等就行。

手把手教你在瀏覽器校驗HTTPS數(shù)字證書

如何證明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》? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊14 分享