博客
关于我
Python url请求提示certificate verify failed unable to get local issuer certificate
阅读量:800 次
发布时间:2023-03-06

本文共 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)

关于SSL验证的详细说明

  • Python版本要求:请确保你使用的requests库版本支持SSL验证。从requests版本3.0开始,默认启用了SSL验证。

  • CA证书问题:如果你在特定环境中遇到证书验证失败,可能是因为本地缺少可信的证书颁发机构(CA)证书。这种情况下,你需要安装正确的CA证书包,或者在代码中禁用验证。

  • 环境配置:在某些环境中,尤其是虚拟机或容器中,证书颁发机构可能需要手动配置。

  • 如何临时禁用SSL验证

    如果你不想深入配置证书颁发机构,可以简单地在requests.get中添加verify=False参数:

    import requestsresponse = requests.get('https://example.com', verify=False)response.status_code

    这种方法虽然简单,但不建议在生产环境中长期使用。对于开发和测试环境,这是一个非常方便的解决方案。

    注意事项

    • 生产环境中使用:在生产环境中,强烈建议配置正确的CA证书,而不是直接禁用验证。
    • 依赖管理:确保certifi库已经安装,因为requests依赖certifi来处理SSL验证。
    • 测试环境配置:在测试环境中,可以手动设置os.environ['HTTPS_CA_CERTIFICATES'] = '/path/to/cacert.pem',以测试是否存在证书问题。

    通过以上方法,你可以快速解决requests.get在HTTPS链接时的证书验证失败问题。如果问题依然存在,请仔细检查CA证书配置,并确保所有相关的依赖已正确安装。

    转载地址:http://xrafk.baihongyu.com/

    你可能感兴趣的文章
    python 基础第七篇
    查看>>
    Python编程:Tkinter图形界面设计(1)
    查看>>
    Python 基础语法:None
    查看>>
    Python 基础语法:基本数据类型(一)
    查看>>
    python编程读取写入excel_Python读取txt内容写入xls格式excel中的方法
    查看>>
    Python 基础语法:基本数据类型(字典)
    查看>>
    Python 基础语法:基本数据类型(字符串)
    查看>>
    Python 基础语法:基本数据类型(集合)
    查看>>
    Python编程的终极十大工具
    查看>>
    python 堆排序
    查看>>
    python编程方式之一-函数式编程
    查看>>
    python 复习计划
    查看>>
    Python 多处理 apply_async 永远不会在 Windows 7 上返回结果
    查看>>
    Python 多处理 Numpy 随机
    查看>>
    Python 多处理 >= 125 列表永远不会完成
    查看>>
    Python 多处理:在第一个子错误时中止映射
    查看>>
    Python 多处理不断产生 pythonw.exe 进程而不做任何实际工作
    查看>>
    Python 多处理从不加入
    查看>>
    Python 多处理如何优雅地退出?
    查看>>
    Python 多处理将子进程的标准输出重定向到 Tkinter 文本
    查看>>