2015-06-04 236 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