.net 将自定义根目录与FiddlerCore一起使用

.net 将自定义根目录与FiddlerCore一起使用,.net,ssl,https,fiddler,.net,Ssl,Https,Fiddler,是否可以为FiddlerCore使用自定义根CA来拦截HTTPS流量 var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase); path = path.Replace("file:\\", ""); if (!path.EndsWith(@"\")) path += @"\"; path += "FiddlerRoot.cer"; FiddlerApplication.AfterS

是否可以为FiddlerCore使用自定义根CA来拦截HTTPS流量

var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
path = path.Replace("file:\\", "");
if (!path.EndsWith(@"\")) path += @"\";
path += "FiddlerRoot.cer";

FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
FiddlerApplication.oDefaultClientCertificate = new X509Certificate(path);
FiddlerApplication.Startup(8888, FiddlerCoreStartupFlags.DecryptSSL);
我需要的是分配一个证书,用于对所有主机证书进行签名


另一种解决方案是在创建根证书之前向FiddlerCore提供证书信息。

FiddlerCore目前不提供自定义其自签名根证书中包含的信息的功能。它将生成链接到名为DO_NOT_TRUST_fiddleroot的根的所有最终实体证书

你能详细说明你为什么寻求这种能力吗

FiddlerApplication.Startup(9999, FiddlerCoreStartupFlags.DecryptSSL);
var path = Path.GetDirectoryName(Assembly.GetCallingAssembly().Location) + @"\sslcertificate.pfx";
var secureEndpoint = FiddlerApplication.CreateProxyEndpoint(443, true, new X509Certificate2(path, "password"));
您可以使用Visual Studio工具创建自己的证书,但是,我使用此免费程序创建了一个测试证书,因为我很懒:

如果证书安装在机器上,我相信您也可以使用X509Store类执行同样的操作

下面是一些执行此操作的代码(未测试):


您可以使用FiddleApplication的oDefaultClientCertificate属性指定现有证书。我在我的窗口服务应用程序上使用它,使用FiddlerCoreAPI捕获HTTPS流量

var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
path = path.Replace("file:\\", "");
if (!path.EndsWith(@"\")) path += @"\";
path += "FiddlerRoot.cer";

FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
FiddlerApplication.oDefaultClientCertificate = new X509Certificate(path);
FiddlerApplication.Startup(8888, FiddlerCoreStartupFlags.DecryptSSL);

我们使用FiddlerCore在一个商业工具上提供代理支持。当用户启动代理功能时,FiddlerCore尝试安装Fiddler生成的根证书,并显示FiddlerRoot文本。其目的是自定义此文本。对于实际安装根目录,您可以自己执行此操作,而无需调用执行此操作的FiddlerCore方法。但是,请注意,提示的文本来自Windows,而不是Fiddler。X509Store certStore=新的X509Store(StoreName.Root,StoreLocation.CurrentUser);打开(OpenFlags.ReadWrite);请尝试{certStore.Add(oRootCert);//可能由于用户拒绝Windows的安全提示而失败}最后{certStore.Close();}还有其他方法可以安装根目录,但它们要求应用程序以管理员身份运行。可以安装根证书,但问题是FiddlerCore不会使用该证书签署自动生成的每个站点证书。是的,您需要安装FiddlerCore本身使用的根证书。安装其他证书将不会有用。相关文本由Windows提供,无法更改。要安装不带文本的根目录,您的应用程序需要以管理员身份运行。
oDefaultClientCertificate
涉及使用什么客户端证书;问题是关于用于生成服务器证书的根证书。有关最新解决方案,请参阅。FiddlerApplication.CreateProxyEndpoint(443,true,新X509Certificate2(路径,“密码”)。。。certificate参数是否表示将使用的新签名根证书而不是do_NOT_TRUST_FIDDLER证书??