加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 20:09:06 所属栏目:百科 来源:网络整理
导读:我收到SSL“坏握手”错误.对此问题的大多数类似响应似乎源于旧库,1024位证书.不兼容等等……我想我已经及时了,并且无法弄清楚为什么我会收到这个错误. 建立: 请求2.13.0 certifi 2017.01.23 ’OpenSSL 1.0.2g 2016年3月1日’ 我正在使用此API(2048位证书密
我收到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找到.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读