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

前端之家收集整理的这篇文章主要介绍了尽管存在最新的依赖关系,但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找到.

猜你在找的设计模式相关文章