Skip to content
Web Hosting

Fix "Not Secure" / Expired SSL & Let's Encrypt Renewal

Not Securecertificate has expiredNET::ERR_CERT_DATE_INVALIDrenewal failed
8 min read Updated 12 June 2026 ESAGAMES Team

A "Not Secure" warning or certificate error means the browser doesn't trust your SSL — usually it expired, is mismatched, has renewal broken, or the page is mixing http and https content. Here is how to fix each.

Expired certificate

Let's Encrypt certs last 90 days and are meant to auto-renew. If yours expired, renewal stopped running. Force a renew and check the timer:

certbot renew --force-renewal
systemctl status certbot.timer   # is auto-renew active?

Why renewal fails

  • HTTP-01 challenge blocked — port 80 must be reachable; the .well-known/acme-challenge path must serve files.
  • DNS changed — the domain must still point to this server.
  • Rate limited — too many failed attempts; wait before retrying.
  • The cron/timer was removed — re-enable certbot.timer.

"Not Secure" but cert looks valid

Often mixed content — the page loads some resources over http://. Update those to https:// (or use a plugin/rule), and make sure the site redirects http to https. A cert for the wrong domain (www vs non-www) also triggers it.

On a panel? Use its SSL tool

DirectAdmin/cPanel have a Let's Encrypt button that handles issuing and auto-renewal. Use it rather than hand-running certbot if you're on a panel.

Expired = renewal stopped (fix the timer + the ACME challenge). "Not secure" with a valid cert = mixed content or a domain mismatch.

Cause: wrong or missing intermediate certificate chain

Some setups install only the leaf certificate without the intermediate chain. Browsers may still show it as valid while some tools/APIs flag it as untrusted. Use an SSL checker to confirm the full chain is served, not just the certificate itself.

How to prevent SSL/renewal problems

  • Use your panel's Let's Encrypt integration instead of a hand-rolled cron job where possible.
  • Monitor certificate expiry with an uptime/SSL monitor so you find out before visitors do.
  • Never block port 80 entirely if you rely on the HTTP-01 challenge.
  • Keep DNS pointed correctly at your server at all times.

Related errors

A redirect loop after installing SSL usually means Cloudflare/WordPress settings disagree — see too many redirects. If the domain itself won't resolve, that's a DNS problem, not SSL — see pointing a domain (A record).

Free SSL, auto-renewed

Our web hosting includes Let's Encrypt SSL with automatic renewal through the panel — no expiry surprises.

See web hosting
FAQ

Frequently asked questions

Why does my site say "Not Secure"?

Either the SSL certificate expired or is for the wrong domain, or the page loads some resources over http (mixed content). Renew/reissue the certificate and force everything to load over https.

Why did my Let's Encrypt certificate not auto-renew?

The renewal couldn't complete — commonly port 80 / the ACME challenge path was blocked, DNS changed, the certbot timer was disabled, or you hit a rate limit. Fix the challenge and re-enable the timer.

How long do Let's Encrypt certificates last?

90 days. They're designed to renew automatically around day 60 via certbot's timer or your panel. If auto-renewal breaks, the cert eventually expires and the site shows as insecure.

Is Let's Encrypt as trustworthy as a paid SSL certificate?

Yes — Let's Encrypt certificates use the same encryption and are trusted by every major browser. The difference from paid certificates is validation level (domain-only vs organization) and support, not security strength.

Why does my SSL checker say the chain is incomplete?

The server is serving the certificate without its intermediate certificate(s). Most panels and certbot include the full chain automatically — if you installed a certificate manually, make sure you included the fullchain file, not just the leaf cert.

Can I use Let's Encrypt with Cloudflare?

Yes, and it's a common setup — Cloudflare provides its own edge certificate to visitors, while Let's Encrypt secures the connection between Cloudflare and your origin server. Set Cloudflare's SSL mode to Full (strict) once your origin certificate is valid.

Further reading

Go deeper on this

Guides and explainers that pair with this fix — from our guides and blog.

Knowledge base

Related articles

Skip the troubleshooting

Managed, protected hosting in Frankfurt — we handle the Linux, the network and the DDoS so you don't have to.

Payments Secure checkout with cards, banking apps and digital wallets.

Choose the payment flow that fits your stack and region without leaving the platform.

Pay by Zen Visa Mastercard Paysafecard PaysafeCash Skrill Trustly Bancontact UnionPay iDeal WebMoney