Skip to content
RU

ERR_SSL_KEY_USAGE_INCOMPATIBLE: How to Fix the Certificate Key Usage

Laptop showing a red browser warning page with a triangle and certificate details panel

What it means: The server certificate's keyUsage extension does not permit the key exchange this TLS handshake negotiated.

  1. Retry from another network or device
  2. Pause antivirus or proxy HTTPS scanning, then reload
  3. If it fails everywhere, read the certificate's keyUsage
  4. Reissue with digitalSignature and keyEncipherment
  5. Deploy the new certificate and reload the server

Test your URL now

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

Check your site's SSL →

What ERR_SSL_KEY_USAGE_INCOMPATIBLE means

ERR_SSL_KEY_USAGE_INCOMPATIBLE is Chromium net error -181. The Chromium source describes it as: "The server's certificate has a keyUsage extension incompatible with the negotiated TLS key exchange method." The failure happens inside the TLS handshake, after the browser has received the certificate. The X.509 keyUsage extension lists what the key may do, and the handshake needs one specific bit:

  • digitalSignature when the server signs the handshake: every TLS 1.3 connection and every TLS 1.2 ECDHE_RSA or ECDHE_ECDSA cipher suite.
  • keyEncipherment for the legacy TLS 1.2 RSA key exchange (TLS_RSA_WITH_* suites), where the client encrypts the premaster secret with the server key.

It is not a trust error: the chain can be valid, unexpired and issued for the right name. It is also not about extendedKeyUsage (serverAuth), which is a separate check. A certificate with no keyUsage extension at all is not restricted and does not trigger this error. The classic offender is an RSA certificate whose keyUsage contains only keyEncipherment while the server negotiates ECDHE or TLS 1.3.

Causes in Chrome, Edge, Firefox and Safari

BrowserWhat you seeMost common trigger
ChromeError page with ERR_SSL_KEY_USAGE_INCOMPATIBLERSA certificate from a private CA or appliance with keyEncipherment only
EdgeThe same code (Edge is Chromium-based)Same as Chrome
FirefoxUsually loads; if the leaf has none of the accepted bits, SEC_ERROR_INADEQUATE_KEY_USAGEFirefox accepts a leaf whose keyUsage has any of digitalSignature, keyEncipherment or keyAgreement
SafariIts own wording, never the Chrome codeThe same certificate defect, if Safari rejects it

The error became common with Chrome 124. Chrome 116 to 123 had the enterprise policy RSAKeyUsageForLocalAnchorsEnabled; when it was disabled, Chrome skipped the check for TLS 1.2 connections that use an RSA certificate chaining to a local trust anchor (a policy-provided or user-installed root). Google's policy documentation states that starting in Chrome 124 the check is always enabled, so that policy no longer has any effect.

Certificates from public CAs normally carry digitalSignature, and connections to public trust anchors were already checked before 124. That is why the error usually appears on internal sites: router and firewall admin pages, printers, hypervisor consoles, intranet apps signed by a private CA, and HTTPS pages re-signed by a TLS-inspection proxy whose generated certificates lack the right bit. Firefox often opens the same page, which makes it look like a Chrome bug; it is not, the certificate really is mislabeled.

Behind Cloudflare, nginx or another proxy

The browser checks the certificate of whatever terminates TLS for it, so on a Cloudflare-proxied hostname your origin certificate cannot cause this error. The checks that apply: on a load balancer or appliance (HAProxy, F5, a firewall portal) inspect the certificate uploaded there, not the backend copy, and on a corporate TLS-inspection proxy the certificate template must include digitalSignature.

If you own the site

  1. Read the extensions the server actually sends.
    openssl s_client -connect intranet.example.com:443 -servername intranet.example.com </dev/null 2>/dev/null \
      | openssl x509 -noout -ext keyUsage,extendedKeyUsage
    If the output shows X509v3 Key Usage: critical followed only by Key Encipherment, you have found the cause. The -ext option needs OpenSSL 1.1.1 or later; on older builds use -text and look for the same lines.
  2. Reissue from your private CA with both bits. A certificate is signed, so extensions cannot be edited in place. Sign a new one with an extension section like this:
    # server_ext.cnf
    [ server_ext ]
    basicConstraints = critical, CA:FALSE
    keyUsage = critical, digitalSignature, keyEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = DNS:intranet.example.com
    
    openssl x509 -req -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial \
      -days 365 -sha256 -extfile server_ext.cnf -extensions server_ext -out server.pem
    Including both bits is what Google's own policy text recommends for RSA certificates meant for HTTPS.
  3. Microsoft AD CS: edit the certificate template's Key Usage extension so that digital signature is allowed, publish the template, and re-enroll the affected servers. Existing certificates keep the old bits until they are replaced.
  4. Appliances with a built-in self-signed certificate: regenerate it from the vendor's admin UI or upload one issued as above instead of keeping the factory certificate.
  5. Deploy and reload. Install the new certificate with its chain and reload the service, for example nginx -t && systemctl reload nginx.

Do not try to "fix" this by forcing legacy RSA key-exchange cipher suites. It cannot work with TLS 1.3, removes forward secrecy and leaves the certificate wrong for every client that negotiates ECDHE.

If you are a visitor

  • Work or school network: if the error appears only there and on many sites, an inspection proxy is generating bad certificates. Send IT the error code; only they can fix the template.
  • Antivirus with HTTPS scanning: update it or switch off encrypted-traffic scanning, then reload. The scanner re-signs every site with its own certificates.
  • Internal device you manage (router, NAS, printer): use the owner steps above to replace its certificate.
  • Public website: if it fails for you on every network and browser, the site owner has to reissue the certificate. There is no browser setting, flag or still-working policy that disables the check.

Clearing the browser cache, cookies or DNS will not help: the certificate is fetched fresh in every new handshake. The system clock is also irrelevant to this error.

How to confirm the fix

Run the same openssl command against the live host and confirm the key usage line now reads:

X509v3 Key Usage: critical
    Digital Signature, Key Encipherment

Then open the page in a current Chrome or Edge: that is the reliable reproduction, because command-line clients do not all apply the same key usage rule. To review the full chain, SANs and expiry from the outside, run the host through 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

Can I bypass ERR_SSL_KEY_USAGE_INCOMPATIBLE?

Not safely and not with a supported switch. The RSAKeyUsageForLocalAnchorsEnabled policy only worked in Chrome 116 to 123; from Chrome 124 the check is always on, so the certificate has to be reissued.

Why did the site work before and fail after a Chrome update?

Before Chrome 124, TLS 1.2 connections using an RSA certificate from a local trust anchor could skip the key usage check. Chrome 124 removed that exception, exposing certificates that were always mislabeled.

Why does the same page open in Firefox?

Firefox accepts a server certificate whose keyUsage contains any one of digitalSignature, keyEncipherment or keyAgreement. Chrome requires the specific bit used by the negotiated key exchange.

Which sites usually show this error?

Internal ones: router and firewall admin pages, printers, hypervisor consoles, intranet apps signed by a private CA, and pages re-signed by a TLS-inspection proxy. Certificates from public CAs normally carry digitalSignature.

Can I keep my private key when I reissue?

Yes. Create a new CSR from the existing key, or have the CA sign the old CSR again with corrected extensions. Only the certificate needs to change.

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.