Intelligence Hub/TLS Misconfigurations

Top TLS Misconfigurations

TLS and SSL configuration errors that break sites or weaken encryption — what each one is, why it matters, and how to fix it.

5 critical issue types3 warning issue types
TLS 1.0 or 1.1 Still EnabledCriticalCVE-2014-3566 (POODLE)

Legacy TLS versions with known vulnerabilities (POODLE, BEAST) remain enabled on server. Modern browsers now block these but internal tools may still use them.

How to Fix

Disable TLS 1.0 and 1.1 in your server config. For Nginx: `ssl_protocols TLSv1.2 TLSv1.3;` — for Apache: `SSLProtocol -all +TLSv1.2 +TLSv1.3`.

Expired or Soon-Expiring CertificateCritical

Certificate has expired or will expire within 7 days. Browsers display hard-stop warnings preventing users from proceeding. Causes immediate revenue loss.

How to Fix

Enable auto-renewal via Let's Encrypt Certbot, AWS ACM, or your CA's ACME integration, and set an expiry alert lead time in CertNotify so the warning arrives weeks ahead.

Incomplete Certificate ChainCritical

Intermediate certificate missing from server response. Desktop browsers often cache intermediates, but mobile and API clients frequently fail — causing intermittent errors.

How to Fix

Concatenate your domain cert + intermediate cert(s) in the correct order in your PEM file. Test with: `openssl s_client -connect domain.com:443 -showcerts`.

Weak Cipher Suites EnabledWarningCVE-2015-0204 (FREAK), CVE-2016-0701

Server supports export-grade, RC4, 3DES, or NULL cipher suites which are cryptographically broken. Attackers can downgrade connections to these weak ciphers.

How to Fix

Use Mozilla SSL Config Generator to get a recommended cipher list for your server. Remove any RC4, DES, EXPORT, and NULL ciphers explicitly.

Missing HSTS HeaderWarning

HTTP Strict Transport Security is not set. Without it, first-visit HTTP requests are vulnerable to SSL stripping attacks, where attackers intercept plaintext connections.

How to Fix

Add: `Strict-Transport-Security: max-age=31536000; includeSubDomains; preload` to your server response headers. Then submit to the HSTS preload list.

Self-Signed Certificate in ProductionCritical

Self-signed certificate is not trusted by browsers or operating systems. All users see certificate warnings. Legitimate services should never use self-signed certs.

How to Fix

Replace with a certificate from a trusted CA. Let's Encrypt provides free, auto-renewing certificates via Certbot or ACME protocol.

Certificate Domain MismatchCritical

Certificate is valid but does not cover the requested hostname. The SAN (Subject Alternative Name) list does not include the accessed subdomain or domain variant.

How to Fix

Reissue certificate to include all required domains in the SAN list. Wildcard certs (*.domain.com) cover all direct subdomains but not sub-subdomains.

No Forward Secrecy (PFS) SupportWarning

Server does not support cipher suites that provide Perfect Forward Secrecy (ECDHE, DHE). Recorded traffic could be decrypted if the server private key is later compromised.

How to Fix

Prioritise ECDHE cipher suites in your server configuration. Ensure DHE key size is at least 2048 bits if DHE is used.

Check Your Domain for the Certificate Issues

Our free checkers find the certificate problems on this list — expiry, an incomplete chain, a self-signed certificate and a hostname mismatch — and a missing HSTS header. They do not test which older protocol versions or cipher suites a server still accepts; that needs a full handshake scanner such as testssl.sh. No signup required.