本文共 1035 字,大约阅读时间需要 3 分钟。
在Python中使用requests.get获取HTTPS链接时解决SSL证书验证失败问题
当尝试使用requests.get获取HTTPS链接时,可能会遇到以下错误:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)
这个错误提示表示SSL证书验证失败,通常是因为无法获取本地证书颁发机构(CA)的证书。这种情况下,最简单的解决方法是直接设置verify=False参数:
requests.get('https://example.com', verify=False) Python版本要求:请确保你使用的requests库版本支持SSL验证。从requests版本3.0开始,默认启用了SSL验证。
CA证书问题:如果你在特定环境中遇到证书验证失败,可能是因为本地缺少可信的证书颁发机构(CA)证书。这种情况下,你需要安装正确的CA证书包,或者在代码中禁用验证。
环境配置:在某些环境中,尤其是虚拟机或容器中,证书颁发机构可能需要手动配置。
如果你不想深入配置证书颁发机构,可以简单地在requests.get中添加verify=False参数:
import requestsresponse = requests.get('https://example.com', verify=False)response.status_code 这种方法虽然简单,但不建议在生产环境中长期使用。对于开发和测试环境,这是一个非常方便的解决方案。
certifi库已经安装,因为requests依赖certifi来处理SSL验证。os.environ['HTTPS_CA_CERTIFICATES'] = '/path/to/cacert.pem',以测试是否存在证书问题。通过以上方法,你可以快速解决requests.get在HTTPS链接时的证书验证失败问题。如果问题依然存在,请仔细检查CA证书配置,并确保所有相关的依赖已正确安装。
转载地址:http://xrafk.baihongyu.com/