Pip 文档 说:
默认情况下,pip会对网络进行SSL证书验证 它通过 HTTPS 建立的连接。这些都是为了防止 针对软件包下载的中间人攻击。 这不使用 系统证书存储,而是使用捆绑的 CA 来自 certifi 的证书存储。
但是,如果缺少新的 Python 安装证书:
% docker run -it --rm python:3.10 bash
root@067205989d2e:/# python -m certifi
/usr/local/bin/python: No module named certifi
尽管如此,pip 正在使用一些存储,并且它可能与 certifi 模块提供的路径不同。那么这条路是什么?
好的,我发现 pip 在
_vendor
包目录下捆绑了 certifi。包的目录可以通过找到
python -m site
完整路径看起来像这样
/usr/local/lib/python3.10/site-packages/pip/_vendor/certifi/cacert.pem