CERTIFICATE_VERIFY_FAILED requests.session()获取请求

时间:2016-04-07 18:09:04

标签: python-2.7

我正在尝试获取只有https网址有效并且没有有效证书的网页内容。

import requests
session_requests = requests.session()

result = session_requests.get("some https url")

我收到以下错误:

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

但是,如果我使用它:

requests.get('https://url.retail.publishedprices.co.il/login', verify=False)

它有效,但我需要在登录时使用requests.session()做同样的事情。

1 个答案:

答案 0 :(得分:0)

如果您查看此网站的SSLLabs report,您会发现有几个问题:

  • 证书中的名称与URL中指定的名称不匹配。如果您尝试使用浏览器访问此站点,也会收到错误消息。
  • 信任链不完整,因此无法验证。有些浏览器可能会尝试下载缺少的中间证书,但其他浏览器也会失败。

我建议联系那些设置网站的人,而不是试图解决这个破坏的设置,以便解决这些严重的问题。修复后,您的脚本中不需要解决方法。

另外,在这种情况下,我不会考虑禁用验证作为可接受的解决方法。这是一个公共可访问的站点,要求提供敏感数据(至少是用户名和密码)。此网站明确执行https。