1

SSL 流量解密、iOS 应用程序和 FiddlerCore 名义上的三重奏是我想要达到的圣杯。

到目前为止,我正在撤消的警告:

1)证书必须被iOS设备信任;如果不是,例如 Safari 会提示您继续,但第三方应用程序不会这样做。

2) 必须使用CertMaker for iOS 和 Android 插件生成证书 - 也就是说,捆绑的 makecert.exe 生成 iOS 不信任的证书。

我已经实现了 SSL 解密部分和 iOS 应用程序部分,但仅来自 Fiddler 本身(不是通过 FiddlerCore 以编程方式),因为它允许您使用插件来执行证书职责;您不能使用 FiddlerCore 的插件。

我尝试的解决方案是手动指定 fiddlercore 使用的证书,并将其指向之前由 Fiddler 和 ios Certificate Maker 插件生成的 .cer。在代码中它看起来像这样:

FiddlerApplication.oDefaultClientCertificate = X509Certificate.CreateFromCertFile(@"FiddlerRoot.cer");
FiddlerApplication.Startup(8877, FiddlerCoreStartupFlags.DecryptSSL | FiddlerCoreStartupFlags.AllowRemoteClients | ~FiddlerCoreStartupFlags.RegisterAsSystemProxy);

尽管如此,我还是无法做到这一点-它仍然尝试使用 makecert.exe 并且据我所知只是无视我手动指定的证书;我对 SSL 证书的理解很糟糕,所以我希望至少有人能告诉我我在叫错树。如果有人知道我可以做些什么来到达我想去的地方,那将不胜感激。谢谢你们!

4

1 回答 1

2

oDefaultClientCertificate对象指的是 FiddlerCore 将尝试发送服务器的证书,如果它需要这样的证书来进行基于客户端证书的身份验证。该对象与 Fiddler 发送给 iOS客户端的服务器证书无关。

为了使此方案正常工作,您需要使用 FiddlerCore 的 CertMaker 插件。幸运的是,FiddlerCore 的下一个版本将附带该插件的兼容版本。

于 2013-08-01T19:33:36.703 回答