python pip ssl certificate verify failed

[ 2017-04-19 08:40:54 | 作者: admin ]
字号: | |
p.s.如果是windows下面pip遇到ssl问题,基本是打开了代理模式,看看是不是打开了Fiddler2软件

使用命令:
pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org pythonPackage
解决,其中的pythonPackage改为对应得库名,如scrapy






一个关于python requests 和SSL证书的问题?

如图,python代码如下:
import requests
requests.get(https://www.zhihu.com/'')

然后报错:
requests.exceptions.SSLError: [Errno 1] _ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed


这个问题也是个大坑,Python2 不支持 SNI,不过具体原因我没有去研究,希望有壮士出来解释。
解决的办法有两个,最简单的就是关闭校验:

response = requests.get(url, verify=False)


如果想让 Python2 支持 SNI 功能,需要以下方法:
使用 pip 安装以下依赖:

        pyOpenSSL == 0.13
        ndg-httpsclient == 0.3.2
        pyasn1 == 0.1.6


然后在使用 urllib3 之前的代码中(即在使用 requests 之前),注入以下代码:

import urllib3.contrib.pyopenssl
urllib3.contrib.pyopenssl.inject_into_urllib3()



pyopenssl对SNI问题加了猴子补丁,requests明明将pyopenssl集成到本地包了,但不清楚为什么没有提供默认检查或者提供相关的hook操作入口,其实pyopenssl上有解决说明
[最后修改由 admin, 于 2017-04-19 13:52:34]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2393

这篇日志没有评论。

此日志不可发表评论。