Mono

Revision date and history available at the bottom of the page.

Welcome to the Fiddler Alpha for Mono.

Fiddler for Mono

Current Linux build: 4.4.8.4 Built: June 13 2014
Current Mac build: 4.4.5.0 Built: July 30th 2013 (Note: Linux build works on Mac, but does not have attach/detach script or app installer)
Old Linux build: 4.4.5.2 Built: August 28th 2013

Mac Note: To avoid OSX Gatekeeper's security block, you will need to launch the Mac version by holding the Control key while clicking on the application icon, and choosing Open on the menu. If the splashscreen/window does not appear, try CMD+Tabbing to flip between windows and/or close one or more Finder windows.

This is an alpha build and the Mac version in particular is quite buggy. Having said that, please report any issues (especially blockers) you discover to moc.kirelet|relddif#moc.kirelet|relddif. Please be sure to include your OS, Mono, and Fiddler version information.

We've run this code (more or less) successfully on Ubuntu 12/13, Linux Mint 15, and OSX 10.8.

FiddlerCore for Mono

Mono FiddlerCore 4.4.5.3 Built: Sept 13 2013

Note: FiddlerCore for Mono does not automatically change the system proxy settings for Mac or Linux. Your application's code will need to do this itself. You can look at the Proxy Configuration section below for details on how you might go about doing this.


MONO CONFIGURATION

Fiddler requires that you have the latest Mono package installed for your platform of choice. That means 3.1.2 for OSX or 2.10.8 for Linux.

If you run

sudo apt-get install mono-complete

You'll probably get everything you need.

If you want to install Mono piecemeal, beyond the base Mono, you must install the Winforms packages.

For Ubuntu 13 / Linux Mint 15 / Elementary OS Luna, run:

sudo apt-get install mono-winforms*

For Ubuntu 12.04, run:

sudo apt-get install libmono-system-windows-forms4.0-cil
sudo apt-get install libmono-windowsbase4.0-cil

Some places in Fiddler use a URLDecode function from System.Web; this will be removed in the future, but for now, consider running

sudo apt-get install libmono-system-web4.0-cil

NEW MonoFiddler v4.4.8.3 includes a new FiddlerScript engine (based on C#). That means you'll also now need

sudo apt-get install mono-mcs


PROXY CONFIGURATION

SYSTEM PROXY CONFIGURATION

When Fiddler starts or "attaches" as the system proxy, it runs {bash attach.script} which contains calls to the {gsettings} command to point the system proxy at Fiddler. When Fiddler closes or "detaches" as the system proxy, it runs {bash detach.script} which uses {gsettings} to disable the system proxy. If you don't like this, or want something else to happen, simply edit that script file.

Using Config scripts for MacOSX
The {attach.script} and {detach.script} set the proxy only for HTTP, not HTTPS. If you want to capture HTTPS traffic, you will need to update the scripts as follows:

attach.script should contain:
networksetup -setwebproxy Wi-Fi 127.0.0.1 8888
networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 8888

detach.script should contain:
networksetup -setwebproxystate Wi-Fi off
networksetup -setsecurewebproxystate Wi-Fi off

Note: If you want to configure Fiddler to watch for traffic on a different adapter, you will need to change the *Wi-Fi* token to the name of the adapter.

Using Config scripts for Linux
Both Firefox and Chromium running on Mint and Ubuntu respect the "system proxy setting."

For Firefox, you must manually choose Edit > Preferences > Advanced > Network > Settings and select *Use System Proxy*. Chromium uses this proxy by default.

Manual Proxy Configuration for Firefox
Click Edit > Preferences > Advanced > Network > Settings and choose "Manual Proxy Configuration", Proxy 127.0.0.1, Port 8888, and tick the "Use this proxy server for all protocols" box.

Manual Proxy Configuration for Chromium
Set your shortcut to launch Chromium like so:

/usr/bin/chromium-browser %U —proxy-server=http=127.0.0.1:8888;https=127.0.0.1:8888


HTTPS CONFIGURATION

Validating Server Certificates
To enable Fiddler/Mono to validate that remote certificates chain to a "legitimate" root, use mozroots to import the set of root certificates vetted/trusted by Mozilla.

From the console, run:

mozroots —import —sync

Note: mozroots can be installed by running sudo apt-get install mono-runtime. See also: mozroots man page.

Alternatively, you can disable certificate validation using the checkbox inside Fiddler's Tools > Fiddler Options > HTTPS tab.

TLS Version
If all HTTPS connections to Fiddler fail in Firefox with a "The connection was interrupted" message, you may need to navigate to about:config inside Firefox and edit the security.tls.version.max preference. Set it to 1.

Trusting Fiddler's Certificate
If you enable HTTPS decryption in Fiddler, you must configure your browser to trust Fiddler's root certificate.

In Fiddler, click Tools > Fiddler Options > HTTPS and click the "Export Root certificate to desktop" button.

Trusting the Root in Firefox
Click Edit > Preferences > Advanced > Encryption > View Certificates. Click the Authorities tab. Click the Import button. Select the FiddlerRoot.cer file from your desktop. Tick the "Trust this CA to identify websites" box and click Ok.

Trusting the Root in Chromium
Navigate to chrome://settings/ and click the "Show advanced settings…" link. In the HTTPS/SSL section, click the "Manage certificates…" button. Click the Authorities tab. Click the Import button. Select the FiddlerRoot.cer file from your desktop (use the "All files" view in the File Picker dialog). Tick the "Trust this CA to identify websites" box and click Ok.


Notable Bugs

  1. Deleting multiple sessions at once in the Web Sessions list may crash Fiddler. Likely a Mono WinForms issue: https://bugzilla.novell.com/show_bug.cgi?id=684773 Should be fixed now

Troubleshooting

If Fiddler does not start properly, please try running it with tracing enabled: mono —trace=all Fiddler.exe and then email the output to us so we can have a look.


Limitations

  1. NEW FiddlerScript added to build 4.4.8.3 FiddlerScript is not available. It (or more likely, a variant based on C#) may arrive in a future build.
  2. Remote Certificate processing on HTTPS connections seems a bit wonky; Mono *always* throws RemoteCertificateNotAvailable exception but this seems to be a false positive. You can disable certificate validation if you like.
  3. Automatic Proxy chaining not yet supported; Fiddler currently overwrites system proxy settings without looking at them first or restoring them later. Will be fixed later. You can set the upstream proxy manually inside Tools > Fiddler Options > Gateway.
  4. WPAD and Proxy Configuration scripts are not supported for upstream gateways.
  5. X-AutoAuth and other techniques based on Windows Authentication probably do not work. Channel-Binding-Tokens definitely won't work.
  6. On Mac, Mono (and thus Fiddler) runs in 32bit only.

TODO List

List of upcoming work for MonoFiddler MonoTodo

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License