While trying to use the SnapWrap library I've come across this error:
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'
Using google I've come across this answer but haven't been able to find urllib3 in site-packages
How can this be fixed?
Your version of python does not support SNI yet, which is needed to get the proper certificates on sites which have multiple certificates per IP address.
Without SNI you get a certificate for
*.google.comand others (see the error message), but none of these match the hostnameandroid.clients.google.combecause the wildcard matches only a single label andandroid.clientsare two labels. But with SNI you get the certificate for*.clients.google.comwhich matches the provided hostname and validates fine.SNI support for python is available with Python 3.x and with Python 2.7.9+, so you need to upgrade.