29

我在一个文件中有大量文件下载链接txt。我正在尝试编写一个python脚本来一次下载所有文件,但最终出现以下错误:

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

该文件正在通过 Intranet 下载。

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

4

7 回答 7

20

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

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

于 2013-06-13T12:19:59.093 回答
18

使用时自己经历过requests

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

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

这样verify=False 做对我有用。

于 2013-12-16T13:05:46.997 回答
17

今天遇到了这个问题,徘徊了几个小时后才知道我的服务器日期时间是错误的。

因此,在深入探讨此问题之前,请首先检查您的服务器日期时间。

也尝试做

>> sudo update-ca-certificates
于 2015-03-03T07:31:02.130 回答
3

最近在使用 ubuntu 14.04LTS 上的请求的 python 应用程序中遇到了同样的错误,我认为它运行良好(也许是这样,并且发生了一些更新)。执行以下步骤为我修复了它:

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

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

于 2018-03-12T23:58:46.067 回答
1

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

于 2016-06-03T10:05:19.833 回答
0

通常更新证书和/或证书cacert.pem文件会起作用。我还必须更新我的 python 版本。比。2.7.5 无法正常工作,因为它处理 SNI 请求的方式。

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

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

于 2016-05-06T22:04:48.630 回答
0

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

于 2015-12-16T18:52:00.467 回答