指定一個(gè)本地證書用作客戶端證書,可以是單個(gè)文件(包含密鑰和證書)或一個(gè)包含兩個(gè)文件路徑的元組:
>>> requests.get('https://kennethreitz.org', cert=('/path/client.cert', '/path/client.key'))
<Response [200]>
或者保持在會(huì)話中:
s = requests.Session()
s.cert = '/path/client.cert'
如果你指定了一個(gè)錯(cuò)誤路徑或一個(gè)無效的證書:
>>> requests.get('https://kennethreitz.org', cert='/wrong_path/client.pem')
SSLError: [Errno 336265225] _ssl.c:347: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib
警告:
本地證書的私有 key 必須是解密狀態(tài)。目前,Requests 不支持使用加密的 key。
Requests 默認(rèn)附帶了一套它信任的根證書,來自于 Mozilla trust store。然而它們在每次 Requests 更新時(shí)才會(huì)更新。這意味著如果你固定使用某一版本的 Requests,你的證書有可能已經(jīng) 太舊了。
從 Requests 2.4.0 版之后,如果系統(tǒng)中裝了 certifi 包,Requests 會(huì)試圖使用它里邊的 證書。這樣用戶就可以在不修改代碼的情況下更新他們的可信任證書。
為了安全起見,我們建議你經(jīng)常更新 certifi!
更多建議: