python 请求 SSLError

python requests SSLError

我在尝试使用 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'

使用 google 我遇到了 this answer 但没能在 site-packages

中找到 urllib3

如何解决这个问题?

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

pip install request

如果您仍然遇到问题,请告诉我。

您的 python 版本尚不支持 SNI,这是在每个 IP 地址有多个证书的站点上获取正确证书所必需的。

如果没有 SNI,您将获得 *.google.com 和其他证书(请参阅错误消息),但其中 none 与主机名 android.clients.google.com 匹配,因为通配符仅与单个标签匹配和 android.clients 是两个标签。但是使用 SNI,您可以获得 *.clients.google.com 的证书,该证书与提供的主机名匹配并且可以正常验证。

python 的 SNI 支持可用于 Python 3.x 和 Python 2.7.9+,因此您需要升级。