我们的网络安装不是最好的,所以我需要告诉通过 ssl 通信的应用程序忽略证书。必须对 NPM 等执行相同的操作。所以现在当我运行时...
$ easy_install pip
...
Download error on https://pypi.python.org/simple/pip/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) -- Some packages may not be found!
那么如何关闭此验证?
附言我知道这是一个安全向量,但请原谅我。
最佳答案
我相信您的 easy_install 最终会转到 setuptools,它有它的 SSL 助手。在我的 Linux 上,它位于/usr/lib/python2.7/site-packages/setuptools/ssl_support.py。基本上有两种方法:
我建议获取证书并手动添加它,您会在 ssl_support.py 中找到这些位置。这些行引起了我的注意:
cert_paths = """ /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt /usr/share/ssl/certs/ca-bundle.crt /usr/local/share/certs/ca-root.crt /etc/ssl/cert.pem /System/Library/OpenSSL/certs/cert.pem """.strip().split()
只需将您的证书附加到其中任何一个即可。请参阅此处如何使用 openssl s_client 获取证书:Using openssl to get the certificate from a server
更进一步,您可以在 setuptools 助手中完全禁用 SSL 验证。 ssl_support.py 中的以下几行引起了我的注意:
try: import ssl except ImportError: ssl = None
我只是在后面添加了 ssl = None,所以:
try: import ssl except ImportError: ssl = None ssl = None
关于python - 如何让 easy_install 忽略证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32894267/