Where are HTTPS Everywhere rules stored in Google Chrome?

Rules defined through the user interface are added in to the extension's local storage: Local Storage/chrome-extension_gcbommkclmclpchllfjekcdonpmejbdp_0.localstorage in your Chrome profile directory¹. This is an SQLite database, if you care to edit it manually.

You can also define rules manually (thanks to MCL for the tip). Current versions of Chrome refuse to load an extension if it's been modified, so you need to either make a copy of the extension outside of the Chrome profile directory or update Chrome's stored signature after modifying the extension.

Either way, go to the extension's directory, which is Extensions/gcbommkclmclpchllfjekcdonpmejbdp/2014.9.11_0 in the Chrome profile directory¹ (replace 2014.9.11_0 by the version you have installed). If you choose to update the signature, you'll need to modify the files _metadata/computed_hashes.json and _metadata/verified_contents.json; I don't know what exactly you need to update or how. If you choose to make a copy, copy the gcbommkclmclpchllfjekcdonpmejbdp directory outside of your profile, uninstall the extension, and drag-and-drop the directory containing the outside copy onto the Extensions page in Chrome.

In the extension directory, there is a file called rules_list.js containing a reference to the default ruleset library. Add yours:

var rule_list = [
"rules/default.rulesets",
"rules/personal.rulesets",
];

Create a file called personal.rulesets in the rules subdirectory. From then on, to modify rules, edit that file. The content of this file should be something like this:

<rulesetlibrary>
<ruleset name="Example ruleset">
  <target host="*.example.com" />
  <target host="*.example.net" />
  <rule from="http:" to="https:" />
</ruleset>
</rulesetlibrary>

Each ruleset can be enabled or disabled independently through the user interface.

To make HTTPS Everywhere reload your rules, go to the Tools → Extensions page. Untick the “Enabled” box next to “HTTPS Everywhere”, and tick it back.

Click on “background page” in the “HTTPS Everywhere” block, and select the “Console” tab. If you see an error message in red, there was an error in your rules; fix it and try again. Otherwise your rules are working.

¹ The default Chrome profile directory is located at %LOCALAPPDATA%\Google\Chrome\User Data\Default under Windows and ~/.config/google-chrome/Default under Linux


  • In your OS, go to the folder where the HTTPS Everywhere extension was installed. On Windows, that's
    %LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\gcbommkclmclpchllfjekcdonpmejbdp\VERSION
    (replace VERSION, of course).
  • Put the XML file(s) in the rules subfolder.
  • Edit rule_list.js and add the new file(s) to the list, like this (THEFILE.xml is the new ruleset):

    var rule_list = ["rules/default.rulesets","rules/THEFILE.xml"];

  • Restart Chrome.

Copied from here and slightly altered.