Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SSL: CERTIFICATE_VERIFY_FAILED certificate verify failed (_ssl.c:645) #27

Open
o0starshine0o opened this issue Apr 17, 2018 · 4 comments

Comments

@o0starshine0o
Copy link
Contributor

在python3中当用urllib.request.urlopen或者urllib.request.urlretrieve打开一个 https 的时候会验证一次 SSL 证书, 当目标使用的是

自签名的证书

时就会爆出一个
URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)的错误消息;

在我的实践中(服务器centos7,nginx, django,Python3.5.1)本地环境和测试环境都没有问题,一旦到了正式服务器,就开始报这个错误。

对于接口

  • api.pingxx.com
  • api.weixin.qq.com

证书是没法验证的,其他情况未知。
联系pingpp的人员后表示无法复现,不清楚为什么我们的正式服务器无法验证这两个域名的证书。

解决方法是将pingpp包中的__init__.py里面verify_ssl_certs改为False,虽然有警告说最好加上验证,但至少去掉验证可以正常访问,加上验证就没法访问了···

@o0starshine0o
Copy link
Contributor Author

@samurai00 大神,找了2天,目前就去掉验证可以正常运行,其他办法都不行,如果有好的方法请告诉我

@samurai00
Copy link
Contributor

不知道你装了 request 没,没装的话,装一个试试?如果你要关 ssl 验证,应该也可以直接设置 pingpp.verify_ssl_cert

@o0starshine0o
Copy link
Contributor Author

装过了:
Name: requests Version: 2.18.1
就正式服务器不行,测试服务器和本地电脑都可以,也有可能是服务器哪个地方配置有问题,不过真不好找T_T

是应该直接设置的,而不该直接改源码的,哈哈

@o0starshine0o
Copy link
Contributor Author

@samurai00 还麻烦大神提交到pip,我直接更新服务器上的SDK,就不再改代码了^_^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants