在supervisord下运行python时证书验证失败

在supervisord下运行python时证书验证失败,python,ssl,python-requests,ssl-certificate,supervisord,Python,Ssl,Python Requests,Ssl Certificate,Supervisord,我有一个程序在我的user/virtualenv中成功运行。程序使用请求访问API。在本文中,整个程序可以理解为: requests.get("https://example.com") 当我从命令行调用它时,它工作得非常好。然而,我正试图让它在supervisord下运行,无论出于何种原因,当我以这种方式运行时,它会出现如下SSL错误: SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certifica

我有一个程序在我的user/virtualenv中成功运行。程序使用
请求访问API。在本文中,整个程序可以理解为:

requests.get("https://example.com")
当我从命令行调用它时,它工作得非常好。然而,我正试图让它在
supervisord
下运行,无论出于何种原因,当我以这种方式运行时,它会出现如下SSL错误:

SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)")
它使用的是同一个用户、python环境、目录等。你知道还有什么需要检查/还有什么可能导致这种情况吗


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

在SupervisorOrd环境中是否提供SSL证书?我假设您使用requests.certs,那么证书也在预期的
requests.certs.where()

位置,所以这是一个网络代理。我运行的机器使用squid代理,我必须添加以下行,以便在我的supervisor配置中设置正确的环境变量,使其正常工作:

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

您是否尝试将
verify=False
添加到您的请求中:
requests.get(“https://example.com“,verify=False)
?是的,如果我添加
verify=False
我会得到一个不同的错误(奇怪的是,服务器返回了
502
,尽管它在正常运行时总是返回
200
。此外,我不想添加
verify=False
作为长期解决方案,即使它确实有效,因为我确实想验证证书。你是否尝试按照建议降级
请求
?我没有这样做,但我认为这是一种失误。)这就是为什么在主管的领导下运行时会有不同的行为?因此,任何涉及绕过请求的解决方法似乎都无法解决问题的根本原因。