使用Python的requests库发送HTTPS请求时的SSL证书验证问题

问题描述

使用python的requests库去发送https请求,有时候不设置verify=False不报错,有时候又报错。

问题原因

使用Python的requests库发送HTTPS请求时,设置verify=False参数可以跳过SSL证书验证。默认情况下,requests库会验证SSL证书以确保请求的安全性。然而,在某些情况下,可能会出现以下几种情况:

1、证书验证错误:如果服务端的SSL证书无效或无法验证,requests库会抛出requests.exceptions.SSLError异常。在这种情况下,您需要确保服务端的SSL证书是有效的,并且在客户端进行验证。

2、CA证书根目录缺失:如果您使用的是自签名证书或者是不受常规CA(Certificate Authority)信任的证书,requests库会抛出requests.exceptions.SSLError异常。为了解决这个问题,您可以通过将CA证书根目录(如.pem文件)添加到requests库的verify参数中,来进行自定义证书验证。

3、代理问题:如果您通过代理服务器发送请求,可能会导致请求的SSL证书验证失败。此时,您可以尝试在代理服务器上禁用SSL证书验证,或者在requests库中设置verify=False参数来跳过验证。

请注意,在安全的生产环境中,强烈建议启用SSL证书验证,以确保通信的安全性。只有在开发和测试阶段,或者确认服务端证书有效的情况下,才应该考虑使用verify=False来跳过SSL验证。

相关推荐
小白学大数据1 天前
爬虫技术选股:Python 自动化筛选潜力股
开发语言·爬虫·python·自动化
克里斯蒂亚诺更新1 天前
https写一个定位当前位置获取经纬度的H5页面
css·网络协议·https
养乐多q.♡1 天前
docker镜像的nginx配置证书SSL,单独配置单个localtion使用证书,其他nginx配置不影响
nginx·docker·ssl
践行见远1 天前
django之认证与权限
python·django
青春不败 177-3266-05201 天前
基于R语言lavaan结构方程模型(SEM)实践技术应用
python·r语言·贝叶斯·生态学·结构方程·sem
费弗里1 天前
进阶技巧:在Dash应用中直接使用原生React组件
python·dash
Ashley_Amanda1 天前
Python入门知识点梳理
开发语言·windows·python
tjjucheng1 天前
小程序定制开发哪家有完整流程
python
海棠AI实验室1 天前
第十二章 类型标注与可读性:让协作与复用更容易
python
羊村积极分子懒羊羊1 天前
python课程三月二十九号粗略总结
开发语言·python