我刚从python.org安装了Python3,在使用pip
安装包时遇到了问题。通过设计,这里的网络上有一个中间人数据包检测设备,它通过使用自己的证书重新签署所有ssl连接来检查所有数据包(包括ssl)。GPO的一部分将自定义根证书推送到Windows密钥库中。
使用Java时,如果我需要访问任何外部https站点,则需要手动更新JVM中的cacerts以信任自签名CA证书。
我该如何在python中做到这一点呢?现在,当我尝试使用pip
安装软件包时,可以理解,我得到了奇妙的[SSL: CERTIFICATE_VERIFY_FAILED]
错误。
我意识到我可以使用--trusted-host
参数忽略它们,但我不想对我试图安装的每个包都这样做。
有没有办法更新python使用的CA证书存储?
发布于 2016-09-07 05:43:17
运行:python -c "import ssl; print(ssl.get_default_verify_paths())"
检查用于验证证书的当前路径。将您公司的根证书添加到其中之一。
路径openssl_capath_env
指向环境变量:SSL_CERT_DIR
。
如果SSL_CERT_DIR
不存在,则需要创建它并将其指向文件系统中的有效文件夹。然后,您可以将证书添加到此文件夹中以使用它。
发布于 2020-09-25 12:53:40
Windows上的替代解决方案是安装允许Python使用Windows证书存储的python-certifi-win32。
pip install python-certifi-win32
发布于 2018-03-21 01:04:21
不是最好的答案,但您可以使用pip
的--cert
选项重用已经创建的ca包,例如:
pip install SQLAlchemy==1.1.15 --cert="C:\Users\myUser\certificates\my_ca-bundle.crt"
https://stackoverflow.com/questions/39356413
复制相似问题