SSL Certificate Expired
Your SSL certificate expired. Browsers are literally telling visitors to leave. Here's how to fix it on Cloudflare, GoDaddy, AWS, Namecheap, cPanel, and more — in under 15 minutes.
Quick Answer
An expired SSL certificate causes browsers to block your site with a full-page "Not Secure" warning. To fix it: log into your hosting provider, find the SSL/TLS section, click renew (or install a free Let's Encrypt cert), wait 5-15 minutes for propagation, then verify at ssllabs.com/ssltest. Enable auto-renewal so it never expires again.
The Problem
An expired, missing, or self-signed SSL certificate causes browsers (Chrome, Safari, Firefox, Edge) to show a full-page security warning — "Your connection is not private", "NET::ERR_CERT_DATE_INVALID", or "Warning: Potential Security Risk Ahead" — before visitors can see any of your content. The warning is unmistakable and looks like your site has been hacked.
Why It Matters
This is a site emergency. Every visitor sees a scary red warning page. Studies show 95%+ of users click "Back" rather than "Advanced → Continue Anyway". Google also drops sites without valid SSL from search results within days, and any HTTPS links pointing to your site (including from Google's own knowledge panels) start failing. Until fixed: your traffic, conversions, and rankings are all bleeding.
How to Fix It
Identify your host: log into wherever you bought your domain or hosting (GoDaddy, Cloudflare, AWS, Namecheap, etc.). The SSL is usually managed there.
Find the SSL/TLS section: it's often under "My Products", "Security", "SSL Certificates", or "Edge Certificates". Look for one marked Expired.
If you have a paid certificate (e.g. from DigiCert, Sectigo, GoDaddy SSL): click Renew, complete payment, and follow the install wizard. Most issue the new cert within 10-30 minutes.
If you don't have a paid certificate: enable free SSL via Let's Encrypt. Most modern hosts (Cloudflare, Vercel, Netlify, cPanel, Hostinger) offer this with one click and auto-renew it forever.
Wait 5-15 minutes for DNS/CDN propagation. Hard-refresh your browser (Ctrl+Shift+R or Cmd+Shift+R) to clear the cached error page.
Verify at ssllabs.com/ssltest — you want an A or A+ rating. Anything below B means there's still a config issue (mixed content, missing intermediate cert, weak ciphers).
Enable auto-renewal in your provider's dashboard. Set a calendar reminder for 30 days before expiry as a backup so you can fix it before it hits production.
Step-by-Step by Host
Walkthroughs for the most common hosts. Pick yours.
Cloudflare▼
- Log into dash.cloudflare.com and select your domain.
- Go to SSL/TLS → Edge Certificates.
- If your Universal SSL says Expired or Pending Validation, click "Disable Universal SSL" and immediately re-enable it — this re-issues a fresh Let's Encrypt cert.
- Set Encryption Mode to Full (Strict) under SSL/TLS → Overview if your origin has its own cert, otherwise Flexible (least secure, only as a temporary fix).
- Universal SSL renews automatically forever — you should never see this expire again on a Cloudflare-fronted domain.
GoDaddy▼
- Log into account.godaddy.com → My Products → SSL Certificates.
- Find the expired cert and click Manage.
- Click Renew — you'll be prompted to pay the renewal fee (typically $69-$99/year for a Standard SSL).
- After payment, GoDaddy issues a new cert. You'll need to verify domain ownership again (usually a DNS TXT record they create automatically if your DNS is also at GoDaddy).
- Once issued (5-30 min), click Install Certificate. If your hosting is GoDaddy too, install is one click. If you host elsewhere, download the .crt and intermediate .ca-bundle files and install them via your host's SSL panel.
- Turn on auto-renewal under the cert's Renew Settings tab.
AWS (Route 53 + CloudFront / ACM)▼
- Open AWS Certificate Manager (ACM) in the same region as your CloudFront distribution (must be us-east-1 for CloudFront).
- If your existing cert is expired: request a new public certificate, validate via DNS (ACM will create the validation CNAME for you if your domain is in Route 53).
- After validation issues the cert, edit your CloudFront distribution → General → Custom SSL Certificate, and select the new cert.
- ACM-issued certs auto-renew indefinitely as long as the validation CNAMEs stay in DNS — leave them in place.
- If you're using Application Load Balancer instead of CloudFront, update the listener under EC2 → Load Balancers → Listeners → HTTPS:443 → Default SSL/TLS certificate.
Namecheap▼
- Log into namecheap.com → Account Dashboard → SSL Certificates.
- Click Manage on the expired cert and choose Renew.
- Pay the renewal fee. After payment, you'll need to re-issue the cert: choose CSR generation (Namecheap can generate one for you if you provide your hosting details, or you can paste your own from cPanel/host).
- Validate via HTTP, DNS, or Email. HTTP validation is fastest (Namecheap places a file on your server automatically if your hosting is also Namecheap).
- Once issued, install via your host. If your host is Namecheap (Stellar/Stellar Plus), they auto-install. If elsewhere, download the .crt and install through cPanel/Plesk/host SSL panel.
cPanel (most shared hosts)▼
- Log into your cPanel and search for AutoSSL or SSL/TLS Status.
- If AutoSSL is enabled, click Run AutoSSL — it will detect the expired cert and request a fresh free Let's Encrypt cert within minutes.
- If AutoSSL isn't available, go to SSL/TLS → Manage SSL Sites → Browse Certificates and check what's installed.
- Generate or upload a new cert: SSL/TLS → Generate, view, upload, or delete SSL certificates. For a free cert, use Let's Encrypt via the AutoSSL or Let's Encrypt SSL plugin (most cPanel hosts pre-install one).
- Install the new cert on your domain via SSL/TLS → Install and Manage SSL.
- Tell your host to enable AutoSSL going forward — most do this by default but it's worth confirming.
Vercel / Netlify / Cloudflare Pages▼
- Modern static hosts handle SSL automatically via Let's Encrypt with infinite auto-renewal — if you're seeing an expired SSL on one of these, it's almost always a DNS issue, not a cert issue.
- Check your DNS: if the apex (root) record is set to ALIAS/ANAME pointing to the host, and your DNS provider stopped serving the record correctly, the cert verification breaks.
- Fix: confirm the DNS A/AAAA/CNAME records at your DNS provider match what the host shows in their dashboard (Vercel → Settings → Domains, Netlify → Domain settings).
- Once DNS is correct, the host re-issues the cert automatically within minutes. No manual cert work needed.
- If the host's UI shows the cert as expired and DNS is correct, contact support — these platforms don't allow user cert management, so it's on them.
Shopify▼
- Shopify-hosted SSL certs are managed by Shopify and auto-renew. If you're seeing expired SSL on a Shopify-myshopify.com URL: contact Shopify support.
- If you've connected a custom domain (e.g. yourstore.com) and it shows expired: go to Settings → Domains → click your domain → Manage. There should be an option to verify or re-issue SSL.
- Common cause: third-party DNS (Cloudflare in front of Shopify) breaking cert validation. Solution: turn Cloudflare proxy off (gray cloud, DNS only) for your apex and www records, wait 24h for Shopify to re-issue, then re-enable proxy if needed.
Common Questions
How do I know if my SSL certificate is expired?▼
The most obvious signs: visitors get a full-page browser warning ("Your connection is not private" in Chrome, "Warning: Potential Security Risk Ahead" in Firefox), the URL bar shows a red lock icon or "Not Secure" text, and tools like ssllabs.com/ssltest will report the cert as expired with the exact expiration date. You can also click the lock icon in your browser → Connection is not secure → Certificate, which shows the expiry date directly.
How long does it take to fix an expired SSL certificate?▼
Usually 5-30 minutes from start to finish. The actual cert issuance is fast (Let's Encrypt issues in seconds, paid certs in 10-30 min). The slowest part is DNS or CDN propagation, which can take up to 1 hour but is usually under 15 minutes.
Can I fix an expired SSL myself or do I need a developer?▼
If your host offers free Let's Encrypt SSL (Cloudflare, Vercel, Netlify, most cPanel hosts), you can fix it yourself with one or two clicks. If you bought a paid cert from a third party (DigiCert, Sectigo, GoDaddy SSL) and need to install it manually on a separate host, that's typically a 30-60 minute developer task.
Will my Google rankings recover after I fix the SSL?▼
Yes, but not instantly. Google needs to recrawl your site after the fix is live. Typical recovery: 1-3 days for Google to recognize the cert is valid again, 1-2 weeks for rankings to fully return to where they were. Submit a re-index request via Google Search Console to speed it up.
What's the difference between free Let's Encrypt and a paid SSL?▼
For a typical small business website, none that matters. Both provide the same encryption strength and the same green padlock. Paid SSL adds: extended warranty (often $10k-$1M), Extended Validation (the green company name in the URL bar — though most browsers stopped showing this), and more enterprise-friendly support. For 99% of sites, free Let's Encrypt is identical to a $99/year cert in every way that visitors notice.
Why does my SSL keep expiring?▼
Either auto-renewal isn't enabled, or it's enabled but failing silently due to a misconfiguration (DNS changed, DNS validation record removed, web server can't serve the validation challenge file). Check your host's auto-renewal logs. If you see repeated failures, the most common fixes are: confirm DNS is at the same provider as your host, ensure the .well-known/acme-challenge URL on your site is publicly accessible, and check that your firewall isn't blocking Let's Encrypt's validation IPs.
What is NET::ERR_CERT_DATE_INVALID?▼
It's Chrome's specific error code for an expired SSL certificate (or one that hasn't started being valid yet — wrong system clock can cause this too). The fix is identical to any expired SSL: renew the cert. If you're seeing this on only your computer and not other devices, check your system clock first.
Want to Know Your Full Score?
This is just one issue. Our 27-point autopsy checks everything.
Don't want to fix it yourself?
Get Professional Help