请求https接口时报错:Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificat,安装certifi

如何解决SSL 根证书验错误: 


一种解决方法是:verify=False 
在session.request 里面:

session.post(post_url,data=post_data,headers=headers,verify=False)

第二种解决方法是: 
安装certifi 或者更新requests包:

  1. 安装certifi的方法是:pip install certifi

  (可参照:https://urllib3.readthedocs.io/en/latest/user-guide.html#ssl)

  2. 但如提示需要升级pip,如下图:

  

  则需使用:python -m pip install --upgrade pip  升级进行

  3. 如使用python -m pip install --upgrade pip升级失败
  可尝试使用:python -m pip install -U --force-reinstall pip
       4. 如依然失败,则使用:pip install --user --upgrade pip 升级

  5. 如果以上方法均失败,则可以试试使用国内源更新pip

  比如豆瓣源:
  python -m pip install --upgrade pip -i https://pypi.douban.com/simple

  安装其他包也可使用此方法加快下载速度。

  6. 一般尝试完以上方法后,即可升级成功,然后在安装certifi:pip install certifi

  

=======================================================================================================================================

问题:

使用Python3 requests发送HTTPS请求,已经关闭认证(verify=False)且尝试安装了certifide的情况下,控制台会输出以下错误:

InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

最简单,不顾一切的解决办法,在代码中添加以下代码即可解决(不在提示以上错误信息)。。测试,可行,而且对程序运行没有不良影响。

import urllib3

urllib3.disable_warnings()
原文地址:https://www.cnblogs.com/denise1108/p/10910700.html