Skip to content
RU

MOZILLA_PKIX_ERROR_MITM_DETECTED in Firefox: How to Fix It

What it means: Something on your device or network re-signs HTTPS traffic with a root certificate Firefox does not trust.

  1. Check the certificate issuer on the error page
  2. Disable antivirus HTTPS scanning, then restart Firefox
  3. Try another network to rule out a proxy
  4. On work networks, ask IT to deploy the root
  5. Site owners: verify the certificate from outside

Test your URL now

Runs a full TLS check: handshake, protocol versions, certificate chain, trust and expiry.

Check your site's SSL →

What MOZILLA_PKIX_ERROR_MITM_DETECTED means

MOZILLA_PKIX_ERROR_MITM_DETECTED is a Firefox certificate error shown on a page titled "Software is Preventing Firefox From Safely Connecting to This Site". It means Firefox could not build a trusted chain for the site's certificate (an unknown-issuer failure) and the issuer of that certificate matches the issuer Firefox already saw when one of its own connections to Mozilla was intercepted.

The mechanism is a canary. When Firefox's update check fails with SEC_ERROR_UNKNOWN_ISSUER, or when a certificate error page triggers a probe to mitmdetection.services.mozilla.com that fails the same way, Firefox stores the intercepting issuer's name in the preference security.pki.mitm_canary_issuer. From then on, an unknown-issuer error whose issuer equals that name is reported as MITM_DETECTED. In other words: something on this computer or network re-signs HTTPS traffic with its own root certificate, and Firefox does not trust that root. It is not a problem with the website's certificate, and not a DNS or HTTP error.

Causes in Firefox, Chrome, Edge and Safari

BrowserWhat you seeMost common trigger
Firefox"Software is Preventing Firefox From Safely Connecting to This Site", code MOZILLA_PKIX_ERROR_MITM_DETECTEDAntivirus HTTPS scanning or a corporate inspection proxy whose root is not in Firefox's store
Chrome, EdgeUsually nothing, because they trust roots installed in the operating system; otherwise NET::ERR_CERT_AUTHORITY_INVALIDInterception root missing from the OS store
SafariIts own wording, such as "This Connection Is Not Private", never the Firefox codeInterception root not trusted in the macOS keychain

The error is typically Firefox-only because Firefox keeps its own root store. Software that adds its root only to Windows or macOS works silently in Chrome, Edge and Safari but breaks Firefox. Mozilla reported in 2019 a significant increase in this kind of error after Firefox 65, often triggered by antivirus software scanning HTTPS.

Since Firefox 68, when a MITM error is detected Firefox automatically turns on the "enterprise roots" preference (security.enterprise_roots.enabled), imports roots that a user, an administrator or installed software added to the operating system, and retries. This import exists on Windows and macOS. If the error persists after that, the interception root is not in the OS store either, or you are on Linux, where the import is not available.

Chrome has a separate code, ERR_CERT_KNOWN_INTERCEPTION_BLOCKED, for certificates Chrome knows are used for interception by someone other than the device owner. That is a blocklist, not the same mechanism.

Behind Cloudflare, nginx or another proxy

Your CDN, nginx or load balancer cannot cause this error: it is triggered by an untrusted issuer on the visitor's side, so Cloudflare SSL modes and origin certificates are irrelevant. The proxy that matters is the one between the visitor and the internet; compare the issuer seen from the affected machine with the one seen from a clean network:

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null \
  | openssl x509 -noout -issuer

An antivirus or company name as issuer on the affected machine, and a public CA from the clean network, means local interception.

If you own the site

  1. Confirm your certificate is fine from outside. Run the openssl command above from a server or use an external checker. If it shows your public CA and a complete chain, there is nothing to change on the server.
  2. Tell affected users what is happening. Reports of this code from many users usually mean a popular antivirus product or an ISP-level inspection is involved, not your configuration.
  3. If you run the inspection proxy (IT admins): deploy its root to Firefox through enterprise policy instead of asking users to click through. In policies.json:
    {
      "policies": {
        "Certificates": {
          "ImportEnterpriseRoots": true,
          "Install": ["/etc/pki/inspection-root.pem"]
        }
      }
    }
    ImportEnterpriseRoots covers Windows and macOS; Install is the way to add a root on Linux.
  4. Do not rely on click-through. Firefox offers no exception on HSTS hosts, so asking users to accept the risk fails exactly on the sites that matter; the root has to be trusted properly.

If you are a visitor

  • Find the issuer. On the error page, open the certificate details and read the issuer name. An antivirus brand or your employer's name explains the error.
  • Antivirus: turn off HTTPS or encrypted-connection scanning, or let the product reinstall its Firefox integration, then restart Firefox.
  • Enable enterprise roots on Windows or macOS: in about:config set security.enterprise_roots.enabled to true. Only do this if you trust the software that installed the root.
  • Removed the software but the error stays: delete security.pki.mitm_canary_issuer in about:config. Firefox also clears it after the next successful update check.
  • Public Wi-Fi or an unknown issuer: disconnect and use mobile data or a trusted network. Do not accept the risk on sites where you log in.

Clearing the cache will not help: the certificate comes from the interceptor on every connection. The system clock is not the cause either.

How to confirm the fix

After the change, restart Firefox and reload the page. The site information panel (the padlock) indicates when a site is verified by a certificate authority that is not in Mozilla's store, which confirms an imported root is in use. To see the certificate the site really serves, run the openssl issuer check from a clean network or test the host with the enterno.io SSL checker.

Related errors

CertificateExpiry, issuer, domains (SAN)
ChainIntermediate and root CA validation
TLS ProtocolTLS version and cipher suite
VulnerabilitiesHeartbleed, POODLE, weak ciphers

Why teams trust us

TLS 1.3
supported
Full
CA chain check
3,158
checks in 30 days
30/14/7
days-to-expiry alerts

How it works

1

Enter domain

2

TLS chain verified

3

Expiry date & vulnerabilities

What Does the SSL Check Cover?

SSL/TLS is the encryption protocol that protects data between the browser and server. Our tool analyzes the certificate, chain of trust, TLS version, and knownvulnerabilities.

Certificate Details

Issuer, validity period, signature algorithm, covered domains (SAN), and validation type (DV/OV/EV).

Chain of Trust

Full chain verification: from leaf certificate through intermediates to root CA.

TLS Analysis

Protocol version (TLS 1.2/1.3), cipher suites, Perfect Forward Secrecy (PFS) support.

Expiry Alerts

Set up a monitor — get Telegram and email alerts 30/14/7 days before expiration.

DV vs OV vs EV Certificates

DV (Domain Validation)
  • Confirms domain ownership only
  • Issued in minutes automatically
  • Free via Let's Encrypt
  • Suitable for most websites
  • Most common certificate type
OV / EV
  • Organization (OV) or Extended Validation (EV)
  • Issued in 1-5 business days
  • Costs $50 to $500/year
  • For finance, e-commerce, government sites
  • Increases user trust

Who uses this

DevOps

SSL certificate monitoring

Security

TLS config audit

SEO

HTTPS as ranking factor

E-commerce

customer trust

Common Mistakes

Expired certificateBrowsers block sites with expired SSL. Set up auto-renewal or monitoring.
Incomplete certificate chainWithout intermediate CA, some browsers and bots cannot verify the certificate.
Mixed content on HTTPS siteHTTP resources on an HTTPS page — the browser lock icon disappears, reducing trust.
Using TLS 1.0/1.1Legacy TLS versions have known vulnerabilities. Use TLS 1.2+ or 1.3.
Domain mismatch in certificateThe certificate must cover all site domains, including www and subdomains.

Best Practices

Set up auto-renewalLet's Encrypt + certbot with cron — certificate renews automatically every 60-90 days.
Enable HSTSStrict-Transport-Security header forces browsers to always use HTTPS.
Use TLS 1.3TLS 1.3 is faster (1-RTT handshake) and safer — legacy ciphers removed.
Monitor expiration datesCreate a monitor on Enterno.io — get notified well before expiration.
Verify chain after renewalAfter certificate renewal, confirm that intermediate certificates are installed.

Get more with a free account

SSL certificate monitoring, check history and alerts 30 days before expiry.

Sign up free

Learn more

Sources

Frequently Asked Questions

Is MOZILLA_PKIX_ERROR_MITM_DETECTED a hacking attempt?

Usually not: antivirus HTTPS scanning and company inspection proxies cause most cases. On public or unknown networks treat it as a possible attack and do not continue.

Is it safe to click Accept the Risk and Continue?

Only if you know the interceptor and trust it, and even then trusting its root properly is better than per-site exceptions. Firefox does not offer the exception on HSTS sites.

Why does the site work in Chrome but not in Firefox?

Chrome and Edge trust roots installed in the operating system, and the interception software usually installs its root there. Firefox uses its own root store unless enterprise roots are enabled.

The error stayed after I uninstalled the antivirus. What now?

Firefox remembered the intercepting issuer in security.pki.mitm_canary_issuer. Delete that preference in about:config; Firefox also clears it after its next successful update check.

What does security.enterprise_roots.enabled do?

It makes Firefox trust root certificates that were added to the Windows or macOS certificate store by a user, an administrator or installed software. Since Firefox 68 it is switched on automatically when a MITM error is detected.

Try the live tool that powered this guide

Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.