最近在進行hp印表機自動化驗證的功能開發,其中有一處用到的是http請求來與印表機互動的。但測試的兄弟經常會出現」[ssl: certificate_verify_failed] certificate verify failed (_ssl.c:590).」的錯誤。經查證:這與ssl的自驗證功能相關:
python 公升級到 2.7.9 之後引入了乙個新特性,當使用urllib.urlopen開啟乙個 https 鏈結時,會驗證一次 ssl 證書。而當目標**使用的是自簽名的證書時就會丟擲乙個 urllib2.urlerror:(引用
1.取消全域性證書驗證
2.使用ssl建立未經驗證的上下文,在urlopen中傳入上下文引數(略)
問題解決
但現在對上面的解決過程還有有很多疑惑:
好吧,看來我還是要把https中的ssl驗證過程熟悉一遍才行,so, come on..
網上查了很多資料,寫的都很教條,害的我認認真真看了1個小時的時間,現在手繪一張圖一切就明白了:
對於圖中①的說明:pub+ok,這裡我的意思是客戶端判斷證書公鑰是否合法,有以下兩點說明:
對於圖中②的說明:pri*(pub*r),我這裡乘號代表加密的意思
對於圖③就不多解釋了,都明了了。
略過的重要但不住要的內容:
對Sql Server執行計畫的淺顯了解。
一名大三的小學生,今天開始我的第一篇部落格,最近隨便做了乙個簡易的酒店管理系統,對sql執行計畫有了初步的了解。檢視上面語句的預估執行計畫,在工具欄中有這個按鈕 聚集索引掃瞄被稱為index scan,這是需要掃瞄全表。聚集索引查詢英文是index seek.這個就不需要掃瞄表,而是根據索引定位。我...
requests 中的 SSL 證書驗證
現在很多 都要求使用 https 協議,但是有些 可能並沒有設定好 https 證書,或者 的 https 證書不被 ca 機構認可,這時候,這些 可能就會出現 ssl 證書錯誤的提示。我們可以在 中中通過一些設定來忽略證書的驗證。import requests from requests.pack...
http協議的簡單了解
http協議是大家在網際網路中最為熟悉的協議,只要上網大家都會遇到,但是,很多人被問道什麼是http協議,http協議的內容是什麼就懵了。這裡,我們隨便聊聊http協議。首先,我們說說協議。我一直覺得 協議 這詞不是很好理解,協商以後達成的決議,其實,就是規定,輪不到使用者協商的規定,就像本朝的法律...