其他概念不說了,有效期之類的驗證也不說了。只說數字證書的真實性和可信性驗證。
1.ca下發給**的證書是分層的證書鏈,從根證書開始一層一層直到**證書。要驗證某一層證書是否確實由上級ca發放的需要驗證附帶在該證書上的由上級ca通過簽名函式及私鑰生成的數字簽名。數字簽名的解密需要上級ca的公鑰,這個公鑰就明文儲存在證書鏈中的上層證書中。而根證書是自己給自己簽名,也就是根證書的簽名也是靠自己儲存的公鑰來解密。這就解決了真實性問題,也就是能證明最底層的**證書確實是證書中標明的ca發放的。(由於證書是分等級的,**擁有 者可能從根證書頒發機構領到證書,也可能從根證書的下一級(如某個國家的認證中心,或者是某個省發出的證書)領到證書。假設我們正在訪問某個使用 了 ssl技術的**,ie瀏覽器就會收到了乙個ssl證書,如果這個證書是由根證書頒發機構簽發的,ie瀏覽器就會按照下面的步驟來檢查:瀏覽器使用內建的根證書中的公鑰來對收到的證書進行認證,如果一致,就表示該安全證書是由可信任的頒證機構簽發的,這個**就是安全可靠的;如果該ssl證書不是根服 務器簽發的,瀏覽器就會自動檢查上一級的發證機構,直到找到相應的根證書頒發機構,如果該根證書頒發機構是可信的,這個**的ssl證書也是可信的。)
(對方是不是上述證書的合法持有者。簡單來說證明對方是否持有證書的對應私鑰。驗證方法兩種,一種是對方簽個名,我用證書驗證簽名;另外一種是用證書做個信封,看對方是否能解開)附帶在證書後面的數字簽名到底是上級ca籤的,還是該證書自己籤的?
2.而可信性是看根證書是否在作業系統或瀏覽器內建的根證書列表中,如果在的話那麼這個證書鏈就可信的。
SSL證書驗證
我們作為證書訂閱人,登記資訊,我是誰,我是什麼組織 通過csr發給ca,ca生成公私鑰,保留公鑰,訂閱人拿到後,部署到web伺服器,瀏覽器發出請求,請求伺服器證書,伺服器將公鑰證書發給瀏覽器,瀏覽器去ca驗證證書 瀏覽器用公鑰加密隨機值發給伺服器 伺服器用私鑰解密後用該隨機值做為同步加密金鑰 dv ...
繞過SSL證書驗證
import requests import logging verify引數控制是否檢查證書 預設是ture 通過捕獲警告到日誌的方式忽略警告 logging.capturewarnings true response requests.get verify false print respons...
關閉SSL證書驗證
python3之關閉ssl證書驗證 python requests 移除ssl認證,控制台輸出insecurerequestwarning取消方法 報錯資訊 1 traceback most recent call last 2 file d python36 lib site packages u...