微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尽管存在最新的依赖关系,但Python请求仍会出现SSL错误

我收到SSL“坏握手”错误.对此问题的大多数类似响应似乎源于旧库,1024位证书.不兼容等等……我想我已经及时了,并且无法弄清楚为什么我会收到这个错误.

建立:

>请求2.13.0
> certifi 2017.01.23
>’OpenSSL 1.0.2g 2016年3月1日’

我正在使用此API(2048位证书密钥):https://api.sidecar.io/rest/v1/provision/application/device/count/

并收到此错误
requests.exceptions.SSLError :(“握手不好:错误([(‘SSL例程’,’ssl3_get_server_certificate’,’证书验证失败’)],)”,)

https://github.com/sidecar-io/sidecar-python-sdk/blob/master/sidecar.py的第44页

如果我在请求中转为verify = False,我可以绕过,但我宁愿弄清楚认证失败的原因.

任何帮助是极大的赞赏;谢谢!

验证失败,因为您访问的服务器设置不正确,即它不是您的设置或代码错误.看看你看到的 report from SSLLabs

This server’s certificate chain is incomplete. Grade capped to B.

这意味着服务器将缺少中间证书的证书链发送到受信任的根,因此您的客户端无法构建信任链.大多数桌面浏览器通过尝试从其他地方获取缺少的证书来解决此问题,但在这种情况下,正常的TLS库将失败.您需要明确地将缺失的链证书添加为受信任以解决此问题:

import requests
requests.get('https://api.sidecar.io',verify = 'mycerts.pem')

mycerts.pem应包含缺少的中间证书和受信任的根证书. mycerts.pem的测试版本可以在http://pastebin.com/aZSKfyb7找到.

原文地址:https://www.jb51.cc/javaschema/281564.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐