繁体   English   中英

SSL错误:例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

[英]SSL error : routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

我在txt文件中有大量的文件下载链接。 我试图写一个python脚本一次下载所有文件,但我最终得到以下错误:

SSLError: [Errno 1] _ssl.c:499: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 

该文件正通过Intranet下载。

我试图通过浏览器下载文件,然后弹出some certificate 我试图谷歌它,但没有找到解决这个问题的方法。

服务器证书无效,原因是它由无效的CA(内部CA,自签名,...)签名,与服务器名称不匹配或因为它已过期。

无论哪种方式,您需要找到如何告诉Python库您正在使用它如果您真的想要从此服务器下载文件,它必须不会停在无效的证书上。

在使用requests时亲自体验过:

这是非常不安全的; 仅作为最后的手段使用! (见rdlowrey的评论。)

requests.get('https://github.com', verify=True)

使verify=False对我来说是个窍门。

今天遇到这个问题,经过几个小时的漫游后才知道我的服务器日期时间错了。

因此,首先请检查您的服务器日期时间,然后再深入研究此问题。

也试着去做

>> sudo update-ca-certificates

最近在一个python应用程序中使用ubuntu 14.04LTS上的请求得到了同样的错误,我认为一直运行正常(可能是它并且发生了一些更新)。 执行以下步骤为我修复了它:

pip install --upgrade setuptools
pip install -U requests[security]

这是一个参考: https//stackoverflow.com/a/39580231/996117

当你的当地时间关闭时(例如在证书验证时间之前)也可能发生,我的错误就是这种情况......

由于certifi库,我遇到了同样的问题。 安装不同的版本对我也有帮助。

通常更新certifi和/或certifi cacert.pem文件将起作用。 我还必须更新我的python版本。 比。 由于处理SNI请求的方式,2.7.5无法正常工作。

获得最新的pem文件后,您可以使用以下命令发出http请求:

requests.get(url, verify='/path/to/cacert.pem')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM