2015-06-04 170 views
2

试图使用the SnapWrap library我遇到这个错误:蟒蛇请求SSLError

File "/usr/local/lib/python2.7/dist-packages/requests-2.7.0-py2.7.egg/requests/adapters.py", line 431, in send 
    raise SSLError(e, request=request) 
requests.exceptions.SSLError: hostname 'android.clients.google.com' doesn't match either of '*.google.com', '*.android.com', '*.appengine.google.com', '*.cloud.google.com', '*.google-analytics.com', '*.google.ca', '*.google.cl', '*.google.co.in', '*.google.co.jp', '*.google.co.uk', '*.google.com.ar', '*.google.com.au', '*.google.com.br', '*.google.com.co', '*.google.com.mx', '*.google.com.tr', '*.google.com.vn', '*.google.de', '*.google.es', '*.google.fr', '*.google.hu', '*.google.it', '*.google.nl', '*.google.pl', '*.google.pt', '*.googleadapis.com', '*.googleapis.cn', '*.googlecommerce.com', '*.googlevideo.com', '*.gstatic.cn', '*.gstatic.com', '*.gvt1.com', '*.gvt2.com', '*.metric.gstatic.com', '*.urchin.com', '*.url.google.com', '*.youtube-nocookie.com', '*.youtube.com', '*.youtubeeducation.com', '*.ytimg.com', 'android.com', 'g.co', 'goo.gl', 'google-analytics.com', 'google.com', 'googlecommerce.com', 'urchin.com', 'youtu.be', 'youtube.com', 'youtubeeducation.com' 

使用谷歌我遇到this answer但一直没能找到urllib3site-packages

如何这可以解决吗?

+0

那么,你应该先检查一下,如果你有一个中间人攻击正在进行,图书馆就在拒绝的连接。列出的通配符证书与给定的主机名不匹配,所以错误没有问题。如果我连接到该网站,我得到一个通配符证书“* .clients.google.com”从谷歌的互联网机构G2用很短的有效期(仅3个月),植根于全球标志CA. – schlenk

回答

2

你的Python版本不支持SNI的是,这是需要得到具有每个IP地址的多个证书的网站的正确证书。

没有SNI你得到*.google.com和其他证书(看到错误消息),但这些都不匹配的主机名android.clients.google.com因为通配符匹配只有一个标签和android.clients是两个标签。但是通过SNI,您可以获得与所提供的主机名匹配的*.clients.google.com的证书并验证正确。

为Python SNI支持可使用Python 3.x和与Python 2.7.9+,所以你需要升级。

-1

当您使用Python 2.7时,您需要安装request而不是urllib3

pip install request 

请让我知道你是否仍然面临问题。

+0

无法找到满足需求的请求版本(版本来自:) 没有匹配的分布发现请求 – Robus

+0

这似乎很奇怪 - 'request'是常用的包的一个。考虑到你使用的Python 2.7是适当的包。您能否让我知道您的机器的系统配置 - 例如32位/ 64位? –

+0

的Linux的Inspiron 3.13.0-36泛型#63,Ubuntu的SMP周三09月03日21点30分07秒UTC 2014 x86_64的x86_64的x86_64的GNU/Linux的 – Robus