python foursquare - SSL3证书验证失败

标签 python ssl ssl-certificate foursquare

我正在尝试使用 Mike Lewis 的 Python 包装器向 Foursquare API 发出无用户请求 - https://github.com/mLewisLogic/foursquare :

client = foursquare.Foursquare(client_id=Client_ID, client_secret=Client_Secret)
categs = client.venues.categories()

间歇性地,我收到“连接到 Foursquare API 时出错”消息。运行记录器以捕获更详细的消息会产生:

“SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败”

这在过去不会发生,在我的本地 Windows 开发机器和运行 ubuntu 的服务器上都会发生。我是否遗漏了一些关于安全证书的基本知识?该问题是间歇性的,有时只需等待一分钟并重试即可暂时解决问题。

我已经下载了最新的 20120716 版本的包装器,尽管在 init.py 的代码中它仍然显示 API_VERSION = '20120608'。我使用的是 Python 2.73,并且还注册了 Foursquare API key ,使用上面代码中的 id 和 secret。我列出了 url,使用我的本地 IP:8000 并尝试为本地和开发机器使用单独的 key ,但这似乎没有什么区别。

非常感谢帮助。谢谢。

最佳答案

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

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

wget http://curl.haxx.se/ca/cacert.pem

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

cd /usr/local/lib/python2.7/dist-packages/httplib2

3) 备份当前证书

cp cacerts.txt backup_cacerts.txt

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

mv cacert.pem cacerts.txt

就是这样。

希望对您有所帮助。如果无法从备份文件中恢复,请尝试其他方法。

我的 foursquare 脚本在我改变这个之后就可以正常工作了:)

关于python foursquare - SSL3证书验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321302/

相关文章:

python - uWSGI保活

javascript - Angular 和 Spring Rest api 通过 https 进行通信

apache - 在 Apache Web 服务器上配置 2 路 SSL 客户端身份验证

Android ssl : javax.net.ssl.SSLPeerUnverifiedException:没有对等证书(再次)

ssl-certificate - 无法绑定(bind) TCP 端口 443 LetsEncrypt

python - 发布到 Django 表单时,是否发布了所有字段?

python将时间添加到已经运行的倒计时

google-chrome - 内部网站的 Chrome 错误 "Server has a weak ephemeral Diffie-Hellman public key"

openssl - 使用 openSSL API 从证书获取 OCSP URL

python - 我无法使用 docker-compose 对 MySQL 和 Django App 进行 Dockerize