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

开启Fiddler时出现RemoteCertificateNameMismatch异常该如何解决?

解决Fiddler开启HTTPS解密后HttpClient报RemoteCertificateNameMismatch异常的方法

问题原因

Fiddler解密HTTPS流量时,会使用自身根证书重新签发目标站点的证书,若该签发证书的域名与原站点不匹配,就会触发HttpClient默认的证书验证逻辑,抛出RemoteCertificateNameMismatch异常。

以下是具体解决办法:

  • 方案一:让HttpClient信任Fiddler根证书

    1. 导出Fiddler根证书:打开Fiddler,依次点击Tools > Options > HTTPS > Actions > Export Root Certificate to Desktop,将证书保存到桌面(文件名为FiddlerRoot.cer)。
    2. 在代码中配置HttpClient信任该证书:
      using System.Security.Cryptography.X509Certificates;
      using System.Net.Http;
      
      // 初始化HttpClientHandler并配置证书验证
      var handler = new HttpClientHandler();
      var fiddlerCert = new X509Certificate2(@"C:\Users\你的用户名\Desktop\FiddlerRoot.cer");
      
      handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) =>
      {
          // 信任Fiddler根证书签发的所有证书
          return sslPolicyErrors == SslPolicyErrors.None || 
                 chain.ChainElements.Any(el => el.Certificate.Thumbprint == fiddlerCert.Thumbprint);
      };
      
      var httpClient = new HttpClient(handler);
      // 使用该httpClient执行SendAsync请求
      
  • 方案二:调整Fiddler证书生成配置

    1. 打开Fiddler的HTTPS高级设置:Tools > Options > HTTPS > Advanced
    2. 在弹出窗口中,勾选Generate certificates for all hostnames (including intranet)选项,确保Fiddler能为所有域名生成匹配的证书
    3. 若配置后仍无效,点击窗口中的Reset All Certificates按钮,重置并重新生成Fiddler证书,之后需重新信任该证书(按提示完成系统证书导入)
  • 方案三:开发环境临时关闭证书验证(仅限调试用)
    若仅为开发调试,可临时跳过证书验证(禁止在生产环境使用):

    var handler = new HttpClientHandler();
    // 忽略所有证书验证错误
    handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
    var httpClient = new HttpClient(handler);
    

内容的提问来源于stack exchange,提问作者O. H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:25:16