我有一个使用https设置的个人Python存储库,并且可以使用以下命令将其上传到其中:
twine upload <dist> -r <my_server> --cert <path/to/certfile>
但是,我希望能够上传而不必显式指定CA证书位置。我相信我已经在系统的正确位置安装了CA证书(使用How to add Certificate Authority in centos7?作为指导,并使用wget进行了验证),但是我仍然必须调出原始路径。
默认情况下,如何使麻线使用备用CA证书?
答案 0 :(得分:2)
Twine依赖于请求,而请求又依赖于Certifi(https://certifi.io/,它实际上是从Requests中提取的),并且Certifi只会查看并仔细查看自己的“ 精心策划的根证书集合” ”,默认情况下:
>>> import certifi
>>> certifi.where()
'/usr/local/lib/python2.7/site-packages/certifi/cacert.pem'
与SSL有所不同。
您可以将TWINE_CERT
或REQUESTS_CA_BUNDLE
环境变量设置为CA证书的路径,前者仅会影响Twine,后者将影响依赖于请求的任何内容。
答案 1 :(得分:1)
运行以下命令以确定Python在哪里寻找您的CA证书:
>>> import ssl
>>> ssl.get_default_verify_paths().capath
/usr/local/etc/openssl/certs
然后将您的自定义证书放在该目录中。