python的requests请求https时,与fiddler冲突造成ssl错误

2023-11-17

目录

原因:

解决方案:

把fiddler关掉就好

去掉requests的ssl验证

保持fiddler和requests的证书一致

        使用从浏览器导出证书,可以放到代码目录下,走fiddler代理

        使用fiddler导出的证书(要用openssl转成pem格式),走fiddler代理

关掉fiddler“启动时作为系统代理”


 

 

 

当开着fiddler时,使用requests发送https请求报错

 

(Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1125)')))

 

原因:

         fiddler默认是启动作为系统代理的,然后requests默认是开启ssl验证的,fiddler配置抓取https时,就会导致两处ssl证书各种问题。

        fiddler作为中间人获取了网站的公钥和客户端的密钥,然后伪装成客户端和服务端通信(使用网站公钥和自己的密钥),再伪装成服务端把收到的信息发送给客户端(使用自己的公钥和客户端的密钥)。fiddler的公钥不是ca认证的,所以requests就无法通过内置的ca公钥解密,验证就会失败。所以要不不验证,要不指定和特定的证书进行对比验证,就能解决问题。

        需要先了解  https原理

 

解决方案:

  • 把fiddler关掉就好

 

  • 去掉requests的ssl验证

         使用fiddler代理,去掉requests自带的证书验证,可以正常使用,verify=False。

response=requests.get(url=url, headers=header,proxies=proxies, verify=False)  # 不使用requests库自带的ssl证书

 

  • 保持fiddler和requests的证书一致

 

         使用从浏览器导出证书,可以放到代码目录下,走fiddler代理

 

 

 

certFile = "浏览器.cer"
response=requests.get(url, proxies=proxies, verify=certFile) 

 

             使用fiddler导出的证书(要用openssl转成pem格式),走fiddler代理

 

cer格式证书转pem格式: 

openssl x509 -inform der -in apple_pay.cer -out apple_pay_certificate.pem

 

certFile = ".\FiddlerRoot.pem"
proxies = {'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
response=requests.post(url, proxies=proxies, verify=certFile)  # 使用fiddler导出的证书

 

通过fiddler捉包requests发出的https时,要保证requests使用的证书和fiddler的相同,否则都会报错。

 

 

 

  • 关掉fiddler“启动时作为系统代理”

把fiddler,tool——connecting下的“启动时作为系统代理”去掉,但是这样要抓取哪个软件的数据包就要在哪个软件设置通过fiddler代理。但是如果通过fiddler代理https,问题依旧,所以一般不建议这样做

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python的requests请求https时,与fiddler冲突造成ssl错误 的相关文章

随机推荐

  • ‘vite’ 不是内部或外部命令,也不是可运行的程序或批处理文件问题解决

    问题解析 使用vite创建vue3 0项目的时候 vite不会自动 install 相关的依赖 需要我们手动去安装 进入项目的node modules目录里面查看 什么都没有 所以说出现这个问题的原因是 缺少安装依赖这一步 vite不像 n
  • 卷积神经网络之计算机视觉应用(一)

    卷积神经网络之计算机视觉应用 一 一 引言 21世纪开始 卷积神经网络就被成功的大量用于检测 分割 物体识别以及图像的各个领域 值得一提的是 图像可以在像素级别进行打标签 这样就可以应用在比如自动电话接听机器人 自动驾驶汽车等技术中 尽管卷
  • 宝元系统u盘使用说明_联想小新Air14使用U盘重装win7系统图解

    联想小新Air14是一款适合年轻人使用的笔记本 高大上的颜值符合现在阶段的年轻用户的审美要求 拥有很高的屏占比 还配置了一个酷酷的按压式指纹识别功能 得到了很多用户的喜爱 开机速度超快 运行流畅 能让用户感受不一样的使用体验 这款笔记本预装
  • element-ui 下拉菜单 el-dropdown-menu 组件 不能动态渲染数据怎么解决?

    关于element ui 下拉菜单 el dropdown menu 组件 不能动态渲染 数据怎么解决 element ui 官网中的例子是这样写的
  • State(状态模式)行为型

    状态模式 一 概述 二 结构 三 实例 四 适用场景 五 优缺点 一 概述 描述 一天有早中晚 不同时间下 太阳光是不一样的 所以随着早中晚的状态变化 太阳的行为也随着变化 定义 状态模式是一种行为设计模式 让你能在一个对象的内部状态变化时
  • Vs2013打开项目时,一直处理等待状态,并显示“Microsoft Visual Studio正忙”的提示窗,处理方法

    问题 现象 VS2013打开项目时 一直处理等待状态 并显示 Microsoft Visual Studio正忙 的提示窗 如下图 此时只能在window任务管理器关闭其进程devenv exe 但再将Vs打开 新建项目 又是好的 只是运行
  • buck电路_BUCK电路工作原理与常用词汇介绍

    首先总结用的最多的电源 1 软启动 AP3502E的PIN8为SS 意思就是soft start 软启动 那么什么是软启动呢 软启动就是使得输出电压慢慢上升到固定值 目的很简单就是为了降低上电瞬间各器件的应力 图片如下 通常的设计在SS脚处
  • kafka如何避免消费组重平衡

    目录 前言 协调者 重平衡的影响 避免重平衡 重平衡发生的场景 参考资料 前言 Rebalance 就是让一个 Consumer Group 下所有的 Consumer 实例就如何消费订阅主题的所有分区达成共识的过程 在 Rebalance
  • iMX8MM启动流程

    iMX8MM启动流程 1 Boot ROM 2 IVT和DCD 3 启动流程 4 总结 我移植的板子是讯为i MX8MM开发板 参考板为官方 8MMINILPD4 EVK开发板 iMX8MM uboot2021 04 linux5 15 3
  • LeetCode: 14

    Count Binary Substrings 简单 但是需要判断啥时候计数 清零 class Solution public int countBinarySubstrings string s if s size lt 1 return
  • kafka知识 --kafka权威指南

    我想既然Kafka是为了写数据而产生的 那么用作家的名字来命名会显得更有意义 我在大学时期上过很多文学课程 很喜欢Franz Kafka 况且 对于开源项目来说 这个名字听起来很酷 因此 名字和应用本身基本没有太多联系 Jay Kreps
  • Jmeter下载安装配置---测试小白

    首先放上我索的照片辟邪 哈哈哈哈 闲话少说 进入正题 一 进入官网 http jmeter apache org 1 第一步进入官网如下图 2 选择进行下载 下载下来为一个压缩包 解压即可 3 我下载的是jmeter4 0版本 对应jdk1
  • 图匹配算法

    目录 1 子图同构算法实现图的匹配 2 利用点构建无向图 1 子图同构算法实现图的匹配 给你两个点集 如何判断两个点集是不是相同的 可以利用子图同构算法进行匹配 程序如下 coding utf 8 Created on Thu Jun 1
  • MySQL锁的总结

    锁保证数据并发访问的一致性 有效性 锁是mysql在服务器层和存储引擎层的并发控制 锁机制 共享锁与排他锁 共享锁 读锁 其它事务可以读 但不能写 排他锁 写锁 其它事务不能读 也不能写 锁粒度 mysql不同的存储引擎支持不同的锁机制 所
  • verilog基本语法总结

    最近学习了verilog基本语法 总结如下 数值表示 Verilog HDL 有下列四种基本的值来表示硬件电路中的电平逻辑 0 逻辑 0 或 假 1 逻辑 1 或 真 x 或 X 未知 z 或 Z 高阻 整数数值表示方法 十进制 d 或 D
  • Java使用 java.util.regex.Pattern 正则表达式校验参数值是否规范

    场景 java中我们可以利用 Pattern 注解对某个入参进行规则校验 但有些特殊参数在接口入口处不方便校验 需要在代码中校验 一 使用 Pattern 注解校验 Pattern regexp a zA Z0 9 message xxx号
  • JVM学习笔记---Java内存模型

    12 1 Java内存模型 Java内存模型 Java Memory Model 是Java虚拟机规范中定义的 用来屏蔽掉java程序在各种不同的硬件和操作系统对内存的访问的差异 以实现让Java程序在各种平台下都能达到一致的内存访问效果
  • echarts的tooltip旋转方案

    当echarts横屏的时候 tooltip还是原来的角度 没有跟着旋转过来 官网说可以使用extraCssText来旋转 但是我测过了无效 extraCssText transform rotate 270deg 详细看了一下官网 发现可以
  • Scanner类中next()和nextLine()的区别

    详解Scanner类中next 和nextLine 的区别 Scanner类中的next 和nextLine 方法是我们经常使用的键盘录入方法 那么两者之间有何不同呢 next 从控制台获取字符串 如果字符串中包含空格 只会获取空格前前的字
  • python的requests请求https时,与fiddler冲突造成ssl错误

    目录 原因 解决方案 把fiddler关掉就好 去掉requests的ssl验证 保持fiddler和requests的证书一致 使用从浏览器导出证书 可以放到代码目录下 走fiddler代理 使用fiddler导出的证书 要用openss