python 裏 certifi 庫的作用
安裝了certifi之後,和requests庫一樣也有一個cacert.pem,可以用編輯器打開cacert.pem,裏面包含了很多可信任知名公司的證書/公鑰
庫的路徑,我這裏是python2.7
C:\Python27\Lib\site-packages\pip\_vendor\requests\cacert.pem
C:\Python27\Lib\site-packages\certifi\cacert.pem
實際上,requests庫也是調用-》certifi庫
所以訪問百度不會報錯,因爲百度的根證書已經在C:\Python27\Lib\site-packages\certifi\cacert.pem裏面,requests庫的請求方法參數verify默認是true
r = requests.get("https://wwww.baidu.com",timeout=(10, 10))
通過360瀏覽器可以看到百度的根證書,查一下cacert.pem文件,確實是有根證書的
# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA # Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA # Label: "GlobalSign Root CA"
certifi 庫安裝文件夾裏面只有一個core.py和cacert.pem文件,core.py裏面只有一個where()函數,用來返回cacert.pem的路徑,所以經常更新certifi庫本質就是要經常更新cacert.pem文件
我本機上requests庫和certifi庫的版本
requests==2.19.1 certifi==2018.8.13