在超级用户下运行python时,证书验证失败

时间:2019-01-21 10:48:03

标签: python ssl python-requests ssl-certificate supervisord

我有一个可以在我的用户/ virtualenv中成功运行的程序。程序使用requests访问API。出于这篇文章的目的,整个程序可以理解为:

requests.get("https://example.com")

当我从命令行调用它时,这完全可以正常工作。但是,我试图使其在supervisord下运行,无论出于何种原因,以这种方式运行时都会失败,并出现如下所示的SSL错误:

SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)")

它使用相同的用户,python环境,目录等。您知道还有什么要检查的/可能是什么引起的吗?

编辑:我认为这可能是防火墙规则类型的东西。探索该选项。

2 个答案:

答案 0 :(得分:1)

受监管的环境中是否提供SSL证书?我假设您使用的是request.certs,所以证书在requests.certs.where()所在的位置?

答案 1 :(得分:0)

所以事实证明这是网络代理。我正在运行的计算机使用了鱿鱼代理,我必须添加以下行以在我的主管配置中设置正确的环境变量才能使其正常工作:

environment=http_proxy=http://proxy.server:3128/,https_proxy=http://proxy.server:3128/