在尝试使用the SnapWrap library时,我遇到了这个错误:
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,但未能在urllib3
找到site-packages
如何解决这个问题?
答案 0 :(得分:3)
您的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 :(得分:-1)
在使用Python 2.7时,您需要安装 request
而不是urllib3
。
pip install request
如果你仍然遇到问题,请告诉我。