我在txt
文件中有大量文件下载链接。我正在尝试编写一个python
脚本来一次下载所有文件,但我最终得到以下错误:
SSLError: [Errno 1] _ssl.c:499: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
该文件正在通过内联网下载。
我尝试通过浏览器下载文件,然后弹出some certificate
。我试图谷歌它,但没有找到解决这个问题的方法。
答案 0 :(得分:19)
服务器证书无效,原因是它由无效的CA(内部CA,自签名,...)签名,与服务器名称不匹配或因为它已过期。< / p>
无论哪种方式,你都需要找到如何告诉你正在使用的Python库,如果你真的想从这个服务器下载文件,它必须不能停在无效的证书上。
答案 1 :(得分:16)
使用 requests
:
这是非常不安全的;仅作为最后的手段使用! (参见rdlowrey的评论。)
requests.get('https://github.com', verify=True)
让verify=False
为我做了诀窍。
答案 2 :(得分:15)
今天遇到这个问题,经过几个小时的游荡后才知道我的服务器日期时间错了。
首先请检查您的服务器日期时间,然后再深入讨论此问题。
也尝试做
>> sudo update-ca-certificates
答案 3 :(得分:3)
最近在使用ubuntu 14.04LTS上的请求的python应用程序中遇到了同样的错误,我认为它一直运行良好(可能是它并且发生了一些更新)。执行以下步骤为我修复了它:
pip install --upgrade setuptools
pip install -U requests[security]
答案 4 :(得分:1)
也可能在您的本地时间关闭时发生(例如在证书验证时间之前),我的错误就是这种情况......
答案 5 :(得分:0)
由于certifi
库,我遇到了同样的问题。安装不同版本对我也有帮助。
答案 6 :(得分:0)
通常更新certifi和/或certifi function checkFormFunction(){
// get elements that are empty.
var empty = $('.profile-user-personal-form input[type="text"], .profile-user-personal-form input[type="password"], .profile-user-personal-form select').map(function(index, el) {
return !$(el).val() ? el : null;
}).get();
//check if at least one radio is checked
var isChecked = $('.profile-user-personal-form input[type="radio"]').is(":checked");
// could also be placed outside of the function
var number = $('.user-leaving-info');
// check if there are any empty elements, a checked radio, if there are none, show numbers, else hide number.
isChecked && !empty.length ? number.css({'opacity': 1, 'pointer-events':'auto'}) : number.css({
'opacity': 0.2,
'pointer-events' : 'none',
});
isChecked && !empty.length ? $('html , body').animate({
scrollTop: $(".user-leaving-info").offset().top
}, 1000) : "";
}
$('.profile-user-personal-form input[type="text"], .profile-user-personal-form input[type="password"]').bind('keyup', checkFormFunction);
$('.profile-user-personal-form input[type="radio"], .profile-user-personal-form select').bind('change', checkFormFunction);
文件会起作用。我还必须更新我的python版本。比。 2.7.5因为它处理SNI请求的方式而无法正常工作。
获得最新的pem文件后,您可以使用以下方式发出http请求:
cacert.pem