Some time back, I wrote a blog on FiddlerCore http://www.anujchaudhary.com/2013/05/automated-website-testing-with.html
Create Fiddler Root certificate using CertMaker.dll and BCMakeCert.dll
Start Fiddler Application on a well-known port
Use FiddlerCoreStartupFlags.Default
Start FiddlerApplication with FiddlerCoreStartupFlags.Default. This will ensure that remote connections are allowed and https decryption is enabled
FiddlerApplication.Startup(9999, FiddlerCoreStartupFlags.Default);
Once the above steps are done, everything else is similar to
what’s described in http://www.anujchaudhary.com/2013/05/automated-website-testing-with.html
I had created a windows application using FiddlerCore and
was interested in using it on remote devices like WindowsPhone/iOS/Android/etc
After some investigations, I was able to achieve this goal
by doing the following:
Create Fiddler Root certificate using CertMaker.dll and BCMakeCert.dll
CertMaker.dll uses the BouncyCastle C# library
(BCMakeCert.dll) to generate new certificates which are compatible with iOS
devices.
Make sure these dlls are in the folder where your executable
and FiddlerCore.dll live.
The root certificate is created in the below method
public void MakeCert()
{
if (!CertMaker.rootCertExists())
{
if (!CertMaker.createRootCert())
{
throw new Exception("Unable to create cert for FiddlerCore.");
}
else
{
Logger.Log("Created Fiddler Root Cert for Https Inspection");
}
}
X509Store certStore = new X509Store(StoreName.Root,StoreLocation.LocalMachine);
certStore.Open(OpenFlags.ReadWrite);
try
{
certStore.Add(CertMaker.GetRootCertificate());
}
finally
{
certStore.Close();
}
}
Start Fiddler Application on a well-known port
Start Fiddler Application on a well-known port which will
allow inbound connections e.g. 9999
FiddlerApplication.Startup(9999, FiddlerCoreStartupFlags.Default);
Use FiddlerCoreStartupFlags.Default
Start FiddlerApplication with FiddlerCoreStartupFlags.Default. This will ensure that remote connections are allowed and https decryption is enabled
FiddlerApplication.Startup(9999, FiddlerCoreStartupFlags.Default);
Enable Echo Service
Echo service needs to be enabled so that the root
certificate can be downloaded and installed on the remote devices for https inspection.
This is done by setting the below preference
FiddlerApplication.Prefs.SetBoolPref("fiddler.echoservice.enabled", true);
Configure proxy on Remote devices
1. On
the remote device, go to http://<local
machine IP>:9999 and download and install the Fiddler Root certificate
2. On
the remote device, go to network settings and add/change the proxy to local
machine IP and port 9999
3. Now
you will be able to dogfood new stuff on the remote device and view
metrics/logs on the local windows machine.
Enjoy!
No comments:
Post a Comment