You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Fiddler拦截Axios的HTTPS请求?Electron调试遇SSL问题

Electron + Axios 调试疑难:Network面板无请求 & Fiddler SSL解析失败

问题背景

用Electron开发爬虫时遇到两个核心问题:

  • Axios发送的请求完全不显示在Electron DevTools的Network面板中
  • 改用Fiddler捕获HTTPS请求时触发SSL解析异常,已开启Fiddler的「信任根证书」「捕获HTTPS流量」「允许远程连接」选项,但仍收到SSL握手提示

Axios测试代码

const axios = require("axios");

// 请求Google
axios
  .get("https://www.google.com", {
    proxy: {
      host: "127.0.0.1",
      port: 8866,
    },
  })
  .then((res) => {
    console.log(res.data);
  })
  .catch((err) => {
    console.log(err);
  });

Fiddler提示信息

A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.

补充测试情况

用Python requests测试相同代理配置可正常被Fiddler捕获,代码如下:

import requests
proxies = {
    'http': '127.0.0.1:8866',
    'https': '127.0.0.1:8866'
}
requests.get('https://www.google.com',proxies=proxies,verify=False)

解决方案

1. 让Axios请求显示在Electron DevTools

Axios如果是在主进程中发送的请求,DevTools默认只监控渲染进程的网络请求,所以看不到。可选解决方法:

  • 将请求移至渲染进程发送,此时Network面板会正常展示请求详情
  • 若必须在主进程发送,可通过Electron的session API监听网络请求:
    const { session } = require('electron')
    session.defaultSession.webRequest.onBeforeRequest((details, callback) => {
      console.log('主进程请求地址:', details.url)
      callback({})
    })
    
  • 启动Electron时添加--inspect=5858参数,打开chrome://inspect页面调试主进程,查看网络请求日志

2. 解决Fiddler捕获Axios HTTPS请求的SSL问题

Electron有独立的证书信任机制,不会默认使用系统信任的Fiddler证书,可通过以下方式处理:

  • 给Axios配置自定义httpsAgent,临时跳过证书验证(仅调试环境使用):
    const axios = require("axios");
    const https = require('https');
    
    const agent = new https.Agent({
      rejectUnauthorized: false
    });
    
    axios.get("https://www.google.com", {
      proxy: { host: "127.0.0.1", port: 8866 },
      httpsAgent: agent
    })
    
  • 导入Fiddler证书至Electron信任存储:
    1. 从Fiddler导出根证书(菜单路径:Tools > Options > HTTPS > Actions > Export Root Certificate to Desktop)
    2. 在Electron中通过session自定义证书验证逻辑:
      const { session } = require('electron')
      session.defaultSession.setCertificateVerifyProc((request, callback) => {
        callback(0) // 0表示信任当前证书
      })
      
  • 启动Electron时添加--ignore-certificate-errors参数,强制忽略证书错误(仅调试用)

内容的提问来源于stack exchange,提问作者Relaxing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:14:51