本篇文章為大家帶來了關於HTTPS的相關知識,其中主要介紹了瀏覽器是怎麼校驗HTTPS的數位證書 ,以及HTTP協定、相關憑證的概念介紹,下面一起來看一下,希望對大家有幫助。
本文解決的問題如下:
免費申請證書網站:https://freessl.cn
網域申請,並解析到伺服器
憑證與網域綁定
在伺服器下載憑證部署腳本,並部署
從HTTP 協定堆疊層級來看,我們可以在TCP 和HTTP 之間插入一個安全層,所有經過安全層的資料都會被加密或解密,
於是HTTPS變成了HTTP和安全層先通信,安全層再和TCP通信。在安全層完成資料的加解密過程。
#基於上述特性,傳輸資料過程採用對稱加密方式保證資料傳輸效率, 用非對稱加密方式解決金鑰易暴露問題。
瀏覽器發起https握手連結時,告知伺服器自己支援的「對稱加密套件清單」 和「非對稱加密套件清單」以及一個自己產生的“隨機數client-random”。
伺服器收到請求後,選擇自行支援的加密方式告知瀏覽器,且傳回一個「資料數service-random」 和「伺服器的數位憑證」 和頒發給伺服器數字證書這個「CA機構本身的數位證書」。
瀏覽器驗證「伺服器數位憑證」和「CA機構數位憑證」的有效性, 驗證成功後,再產生一個隨機數「pre-master”,並使用「伺服器數位憑證」中攜帶的「公鑰」會將隨機數「pre-master」加密,並發送給服務確認。
伺服器利用「伺服器數位憑證」的「私鑰」進行解密,得到隨機數「pre-master」, 並回應瀏覽器已收到。
瀏覽器把之前自己產生的隨機數「client-random」、「pre-master」 以及伺服器傳回的「service-random」 組合在一起產生一個新的金鑰“master secret”, 之後利用新的金鑰進行與伺服器之間資料的加密。
伺服器上的憑證來自哪裡?
向CA機構申請的數位證書, 部署在伺服器上時,一般除了CA機構發給服務的數位證書(俗稱網關證書),還有「CA機構本身的數位證書」。
CA機構頒發給伺服器的數位憑證包含哪些內容?
至少包含了向CA機構申請證書時的“組織機構/個人資訊”, “證書有效期”、“證書的公鑰”、“CA機構給到證書的數位簽名”、“CA機構資訊”等
伺服器上只部署了伺服器自己的證書,沒有CA機構的數位證書,咋辦?
伺服器上沒得到CA機構的數位憑證時,瀏覽器可以從網路自動下載,但這樣可能拉長首次介面/頁面造訪的時間,還可能失敗。
首先,瀏覽器利用憑證中指定的hash演算法對」組織機構的明文資訊」計算出資訊摘要
然後,利用CA憑證的公鑰來解密數位憑證中的”數位簽章”,解密出來的資料也是資訊摘要。
最後,判定兩個摘要資訊是否相等就行。
簡單粗暴的方案是:作業系統內建所有CA機構的證書,且假設這個作業系統沒有被惡意入侵。
折中方案是:把CA機構分成兩類,根CA和中間CA, 我們通常向中間CA申請證書,根CA主要給中間CA做認證用。中間CA又可以給其它中間CA認證,形成樹狀結構,一級級認證,直到找到根證書。
憑證上都有憑證鏈,能找到上一層機構是什麼,使用與上一步相同的演算法,讓上一層機構證實目前憑證的真實性,直到追溯到根憑證,而根憑證只需要在作業系統中可查找到就任務是對的,因為根憑證是業界瀏覽器和作業系統廠商的規範。
根證書在安裝作業系統時內建了。內建的根證書,是透過WebTrust國際安全審計認證的,權威證書。
如何驗證根憑證是否合法,瀏覽器尋找根憑證是否存在作業系統裡面,若不是則不合法,反之則合法。
WebTrust 是由兩大著名註冊會計師協會AICPA(美國註冊會計師協會)和CICA(加拿大註冊會計師協會)共同製定的安全審計標準,主要對互聯網服務商的系統及業務運作邏輯安全性、保密性等共七項內容進行近乎嚴苛的審查與鑑證。只有通過 WebTrust 國際安全審計認證,根憑證才能預先安裝到主流的作業系統,並成為一個可信任的認證機構。
自簽署的CA證書,需要用戶提前內建證書在用戶電腦檔案中,或放置在伺服器上。
根憑證就是一種特殊的自簽名憑證。
建議學習:《HTTP影片教學》 ##
以上是手把手教你在瀏覽器校驗HTTPS數位證書的詳細內容。更多資訊請關注PHP中文網其他相關文章!