The public certificate

A shared certificate for *.backloop.dev, so you get HTTPS on localhost without generating anything yourself. Install it once per machine.

What this is

Every hostname under backloop.dev resolves to 127.0.0.1 and ::1. This page publishes a certificate for all of them, together with its private key, so that anybody can use it.

It is self-signed. No certificate authority issued it, which is the entire point: the previous certificate was revoked because publishing a key obliges a certificate authority to revoke, and there is no authority here to oblige. Nothing can take this one away. The cost is that your machine does not trust it until you say so, which is what the rest of this page is about.

What you are accepting

The private key is public. Anyone has it. Once you install this certificate, someone who can redirect your machine's DNS for a *.backloop.dev hostname could present a page your browser accepts.

Two things bound that. It is a leaf certificate, not a certificate authority, so it cannot be used to sign any other hostname: your bank and your email are untouched, and that is the difference between this and installing a root. And these hostnames point at your own machine, so an attacker needs to control your DNS before any of it applies.

If that is not a trade you want to make, do not install it. Use your own certificate instead, which the tooling supports directly and which is the better answer whenever you can manage it.

Install it

Download backloop.dev-cert.crt, then follow the section for your system.

macOS

Double-click the file to add it to Keychain Access, find *.backloop.dev under the login keychain, open it, expand Trust, and set Secure Sockets Layer (SSL) to Always Trust. Or do it in one command:

security add-trusted-cert -r trustRoot -p ssl \
  -k ~/Library/Keychains/login.keychain-db backloop.dev-cert.crt

Setting the SSL policy rather than blanket trust keeps it to TLS and nothing else. Safari and Chrome pick this up.

To remove it later, run this, and run it first:

security remove-trusted-cert backloop.dev-cert.crt

Deleting the certificate from Keychain Access, by dragging it to the trash or with security delete-certificate, is not enough. The trust setting is stored separately, keyed by the certificate, and it survives the certificate being deleted. Your machine goes on trusting this certificate even though it appears to be gone, and security dump-trust-settings will report nothing while that is happening. Measured on macOS 26. Remove the trust first, then delete the certificate if you want to.

Windows

Right-click the file, choose Install Certificate, pick Current User, then Place all certificates in the following store and browse to Trusted Root Certification Authorities. Chrome and Edge use this store. Or, in a terminal:

certutil -addstore -user Root backloop.dev-cert.crt

To undo it, open certmgr.msc, find *.backloop.dev under Trusted Root Certification Authorities, and delete it.

Linux

sudo cp backloop.dev-cert.crt /usr/local/share/ca-certificates/backloop.dev.crt
sudo update-ca-certificates

That covers curl and most command-line tools. Chrome on Linux keeps its own store, so add it there too with certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n backloop.dev -i backloop.dev-cert.crt.

Firefox

Firefox does not use the system trust store, and it will not accept this certificate as an authority, because it deliberately is not one. Firefox will show a warning and let you add an exception per hostname. If you use Firefox as your main development browser, you will be better served by your own certificate.

Check what you installed

The SHA-256 fingerprint of the certificate published here:

A6:EE:0D:5E:23:D0:2F:CC:F0:66:D6:03:BC:C9:C6:01:7B:B9:BD:62:E6:75:A3:EF:43:1D:D5:61:EB:36:CA:F1
openssl x509 -in backloop.dev-cert.crt -noout -fingerprint -sha256
Covers*.backloop.dev and backloop.dev
Expires4 September 2036
TypeSelf-signed leaf, CA:FALSE, serverAuth only

Ten years, because rotating costs everyone who installed it a second trip through this page. When the time comes, a replacement is published here and the package announces it at start-up months beforehand.

Using your own certificate instead

Better in every way if you can: nobody else holds the key, Firefox works, and there is nothing to trust that you did not create. mkcert sets up a local authority and issues from it:

mkcert -install
mkcert '*.backloop.dev' backloop.dev

Then point the package at what it produced, and it will not download anything:

export BACKLOOP_DEV_CERT=/path/to/_wildcard.backloop.dev+1.pem
export BACKLOOP_DEV_KEY=/path/to/_wildcard.backloop.dev+1-key.pem

A backloop.dev.json file in your project does the same thing, and there are a couple of other ways to arrange it. The package README lists them.