requests 调用 API 报错 requests SSL: CERTIFICATE_VERIFY_FAILED ,但可以确认 API 的证书没问题,用浏览器都可以正常访问。大家遇到过这个问题吗?
环境:
ubuntu 14.04
virtualenv
python 2.7.6
requests 2.12.4
参考过 http://stackoverflow.com/questions/29134512/insecureplatformwarning-a-true-sslcontext-object-is-not-available-this-prevent 这个问题,但依然没能解决。
1
tumbzzc 2017-01-13 18:28:53 +08:00
requests.packages.urllib3.disable_warnings()
|
3
woostundy OP 实在没办法的话只能 verify=False 了
|
4
linbiaye 2017-01-13 18:46:02 +08:00
自签的证书吧? curl 报错么?
|
5
lslqtz 2017-01-13 18:46:33 +08:00
如果不是自签的证书,就手动指定全部根证书位置吧。
|
9
woshifyz 2017-01-13 19:44:10 +08:00 1
因为 certifi 的问题,你换个版本就行了,或者删掉
|
12
woshifyz 2017-01-13 22:42:25 +08:00
@woostundy 那可能就需要你自己调试下了,我这边只有 centos6.5 , uninstall certifi 之后是可以访问 https 的
|
13
ox180 2017-01-13 23:01:38 +08:00
用 Python3
|
14
binux 2017-01-13 23:16:46 +08:00
看看 ssl 的协议 requests 是否支持
|
15
shiny 2017-01-13 23:25:53 +08:00
配置 API 的证书时候有没有忽略中间证书?
|
16
saymoon 2017-01-13 23:27:29 +08:00
apt-get upgrade 试试。
|
17
latyas 2017-01-14 01:23:26 +08:00 1
升级到 2.7.10 +
|
18
SlipStupig 2017-01-14 01:58:48 +08:00
@woostundy VERIFY=False ,直接解决,验证不验证无所谓,有些证书是自签的或者过期了,你想请求内容直接放弃就行,除非你怕被劫持流量
|
19
013231 2017-01-14 05:21:43 +08:00 via iPhone
缺少中间证书可以导致此问题(浏览器中正常, requests 验证失败)。
|
20
linbiaye 2017-01-14 07:47:59 +08:00
你这个信息太少了, requests SSL: CERTIFICATE_VERIFY_FAILED ,没有说为啥失败。 curl 可以,猜测是因为 python 没能正确找到 ca 证书,得把为啥失败了贴出来。
|