首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL证书在Travis上失败,但在本地工作良好(使用请求和Certifi)

SSL证书在Travis上失败,但在本地工作良好(使用请求和Certifi)
EN

Stack Overflow用户
提问于 2016-12-22 22:21:00
回答 1查看 439关注 0票数 0

我正在使用请求和证书抓取以下站点:https://ecf.ared.uscourts.gov/

当我在本地机器上刮擦它时,它工作得很好,但是当我在Travis中运行自动化测试时,它失败了:

代码语言:javascript
复制
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

我为此使用的代码非常简单:

代码语言:javascript
复制
url = 'https://ecf.ared.uscourts.gov/cgi-bin/login.pl'
r = requests.post(
    url,
    verify=certifi.where(),
    timeout=60,
    files={
        'login': ('', username),
        'key': ('', password)
    },
)

有什么想法,特拉维斯和我的本地机器之间有什么不同,会导致证书失败吗?我以为证书的意思是标准化所有这些。(我已经证实,我已经在两台计算机上更新了版本。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-23 01:24:38

明白了!Travis使用的是一个旧版本的OpenSSL,它不支持交叉签名的证书,但是我的本地开发机器使用的是现代版本的OpenSSL。

这里的解决方案是使用certifi.old_where(),它提供了较旧的、安全性较低的证书支持。我已经接受了这一点,直到我能够升级我们已经拥有的OpenSSL版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41292493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档