Python - SSL:CERTIFICATE_VERIFY_FAILED

时间:2016-08-25 13:15:51

标签: python ssl certificate

我有一个使用VirusTotal API的python脚本。它一直没有问题,但是当我运行脚本时突然发现以下错误:

urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

我认为可能是我们的网络代理导致了这个问题。有没有办法阻止它验证证书?以下是使用API​​的代码部分:

json_out = []
url = "https://www.virustotal.com/vtapi/v2/file/report"

parameters = {"resource": my_list,
              "apikey": "<MY API KEY>"}

data = urllib.urlencode(parameters)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
json_out.append (response.read())

2 个答案:

答案 0 :(得分:0)

  

我认为可能是我们的网络代理导致了这个问题。有没有办法阻止它验证证书?

如果您认为SSL拦截代理拒绝连接,那么您必须在代理处解决问题,即无法指示代理不从您的应用程序检查证书。

如果您认为存在SSL拦截代理,因此您收到的证书未由您信任的CA签名,那么您应该获得代理的CA并在您的应用程序中信任它(请参阅cafile documentation中的参数。禁用验证几乎从来都不是正确的方法。而是修复它以便验证起作用。

答案 1 :(得分:0)

有两种可能性,

  1. 您使用的是自签名证书。浏览器不相信此类证书,因此请确保您使用的是CA签名的可信证书。
  2. 如果您使用CA签名的可信任证书,则必须检查安装CA链证书(根证书和中间证书)。
  3. 您可以参考这篇文章,它可能会对您有所帮助。 - https://access.redhat.com/articles/2039753