Skip to content

SEC_ERROR_INADEQUATE_KEY_USAGE

Key idea:

SEC_ERROR_INADEQUATE_KEY_USAGE — Firefox: cert carries a Key Usage extension (keyUsage) but lacks the required bits for server auth. Needed: digitalSignature + keyEncipherment (RSA) or digitalSignature (ECDSA). Or Extended Key Usage (EKU) is missing serverAuth. Fix: reissue via the CA with correct extensions.

Below: causes, fixes, FAQ.

Check your site's SSL →

Common Causes

  • Cert issued without digitalSignature/keyEncipherment
  • Extended Key Usage lacks TLS Web Server Authentication
  • CA compromise forced narrow key-usage restriction
  • Reused client cert as server (wrong EKU)
  • Code-signing cert pressed into HTTPS duty (wrong EKU)

Step-by-Step Fix

  1. Reissue via Let's Encrypt — EKU + Key Usage correct by default
  2. Check: openssl x509 -in cert.pem -text | grep -A2 "Key Usage"
  3. Required bits: Digital Signature + Key Encipherment for RSA
  4. Required EKU: TLS Web Server Authentication
  5. Enterno SSL Checker — highlights missing KU

Check SSL Certificate →

Related SSL Errors

TL;DR

To fix the SEC_ERROR_INADEQUATE_KEY_USAGE error in Firefox, ensure your SSL certificate is configured correctly to meet key usage requirements. Specifically, the certificate must include the 'Digital Signature' and 'Key Encipherment' usages. You can verify this using the OpenSSL command line tool with openssl x509 -in your_certificate.crt -text -noout to check the key usage extensions.

Understanding SEC_ERROR_INADEQUATE_KEY_USAGE

The SEC_ERROR_INADEQUATE_KEY_USAGE error in Firefox occurs when a server's SSL/TLS certificate lacks the appropriate key usage attributes. This error typically arises in environments where strict compliance with security standards is enforced, such as in the EU's GDPR framework. Key usage attributes define the purposes for which a certificate's public key can be used, and if these are misconfigured, clients like Firefox will reject the connection.

Key usage attributes are defined in the X.509 standard, which is widely used for SSL/TLS certificates. The main usages relevant for web servers include:

  • Digital Signature: Required for verifying the authenticity of the certificate.
  • Key Encipherment: Necessary for encrypting data exchanged between the client and server.
  • Key Agreement: Used for establishing shared secrets.

When any of these usages are improperly set or missing, users may encounter the SEC_ERROR_INADEQUATE_KEY_USAGE error when trying to access secured websites.

Fixing the Error: Step-by-Step Guide

To resolve the SEC_ERROR_INADEQUATE_KEY_USAGE error, follow these steps to ensure your SSL certificate is properly configured:

  1. Check Your SSL Certificate: Use the OpenSSL command to inspect your certificate and verify the key usage settings. Run the following command:
openssl x509 -in your_certificate.crt -text -noout
  1. Review Key Usage Extensions: Look for the Key Usage and Extended Key Usage fields in the output. Ensure they include Digital Signature and Key Encipherment. Example output:
Key Usage: critical, Digital Signature, Key Encipherment
  1. Update Certificate if Necessary: If the required usages are missing, you will need to either generate a new certificate or modify the existing one. Depending on your certificate authority (CA), you may have options to reissue or renew the certificate with the correct settings.
  2. Test Your Configuration: After updating your certificate, restart your web server to apply changes. You can test your SSL configuration using online tools like SSL Labs' SSL Test to ensure that the certificate is set up correctly and is compliant with current standards.
  3. Verify in Firefox: Finally, revisit the website in Firefox. If the configuration is correct, the SEC_ERROR_INADEQUATE_KEY_USAGE error should no longer appear, allowing secure connections to be established.

By following these steps, you can effectively address the SEC_ERROR_INADEQUATE_KEY_USAGE error and improve the security posture of your web applications.

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
<2s
result
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

Key Usage vs EKU?

Key Usage — primary: what the cert can do cryptographically (sign, encrypt). EKU — constraining: for which applications it is allowed (server auth, client auth, email, code signing).

Minimum set for HTTPS?

RSA: KU=digitalSignature,keyEncipherment + EKU=serverAuth. ECDSA: KU=digitalSignature + EKU=serverAuth.

Adjust private CA?

Yes. In OpenSSL config: <code>keyUsage=digitalSignature,keyEncipherment</code> + <code>extendedKeyUsage=serverAuth</code>.

Is Firefox stricter than Chrome?

Firefox historically stricter on KU validation. Chrome also checks but sometimes warns less loudly.

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.