首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python SSL3证书验证失败

python SSL3证书验证失败
EN

Stack Overflow用户
提问于 2012-11-10 10:39:21
回答 1查看 7.9K关注 0票数 9

我试图使用Mike的Python包装器-https://github.com/mLewisLogic/foursquare向Foursquare API发出一个没有用户的请求:

代码语言:javascript
复制
client = foursquare.Foursquare(client_id=Client_ID, client_secret=Client_Secret)
categs = client.venues.categories()

Intermittently,我得到了一个“连接到Foursquare API的错误”msg。运行记录器以捕获更详细的消息会产生:

"SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate验证失败“

这在我的本地Windows开发机器和运行ubuntu的服务器上都没有发生。我是不是漏掉了一些关于安全证书的基本内容?这个问题是断断续续的,有时只需要花一分钟时间重新尝试就能暂时解决问题。

我已经下载了包装器的最新20120716版本,尽管在init.py的代码中仍然写着API_VERSION = '20120608‘。我正在使用Python2.73,并且已经注册了Foursquare API密钥,使用了上面代码中的id和保密。我使用本地IP:8000列出了urls,并尝试为本地机器和dev机器使用单独的密钥,但这似乎没有什么区别。

非常感激的帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-11 15:48:35

我昨天也遇到了同样的问题。我搜索了很多,尝试了很多,似乎下面的策略适用于我的情况(我不是100%确定,但它不再报告错误了)。

1)下载http://curl.haxx.se/ca/cacert.pem

代码语言:javascript
复制
wget http://curl.haxx.se/ca/cacert.pem

2)转到Python。我的在/usr/local/lib/python2.7/dist-packages/httplib2

代码语言:javascript
复制
cd /usr/local/lib/python2.7/dist-packages/httplib2

3)备份当前证书

代码语言:javascript
复制
cp cacerts.txt backup_cacerts.txt

4)然后将下载的文件复制到那里并将其重命名为cacerts.txt

代码语言:javascript
复制
mv cacert.pem cacerts.txt

就这样。

希望能帮上忙。如果没有从备份文件中恢复,请尝试其他方法。

在我更改以下内容之后,我的foursquare脚本就可以正常工作了:)

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13321302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档