SSL流量解密,iOS应用和FiddlerCore的标准三重奏是我想要达到的圣杯。
到目前为止我已经解开的警告:
1)iOS设备必须信任证书;如果不是,Safari会提示您继续,但第三方应用程序不会这样做。
2)必须使用CertMaker for iOS and Android plugin生成证书 - 也就是说捆绑的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证书的理解是可悲的,所以我希望至少有人可以告诉我,我正在咆哮错误的树。如果有人知道我能做些什么来到达我想去的地方,我将非常感激。谢谢大家!
答案 0 :(得分:2)
oDefaultClientCertificate
对象是指FiddlerCore如果需要基于客户端证书的身份验证的证书,则会尝试将发送到服务器的证书。该对象与Fiddler发送到iOS 客户端的服务器证书无关。
为了使此方案有效,您需要使用FiddlerCore的CertMaker插件。幸运的是,FiddlerCore的下一个版本将附带该插件的兼容版本。