DomainLens

Навчання

SSL Certificate Expired: Diagnosing and Fixing It

An expired certificate does not degrade the site — it stops it. And the most common version of this problem is a certificate that was renewed successfully and never actually loaded.

Перевір сайт перед виправленнями

Запусти свіжий аудит DomainLens і використовуй звіт як список пріоритетів.

Запустити безкоштовний SEO-аудит

What visitors see, and what it costs

Browsers meeting an expired certificate show a full-page interstitial before any content loads. There is no partial experience: the visitor sees a security warning and a button they have been trained never to click. Traffic drops to near zero within minutes of expiry.

Googlebot is affected too, though less dramatically. It cannot complete the TLS handshake, so pages fail to fetch. A short outage is recoverable; days of it will pull pages from the index.

Why renewal so often does not take effect

The certificate file on disk and the certificate being served are different things. A web server reads the file at start-up and keeps it in memory, so a renewal that writes a new file changes nothing until the process reloads.

CauseSymptomFix
Renewed but not reloadedNew file on disk, old cert servedReload the web server
Renewal job never ranFile itself is expiredCheck the timer or cron
Renewal failed silentlyErrors only in the renewal logRead the log, fix validation
Wrong file referencedServing a different certificateCheck the server config path
Incomplete chainWorks in some clients, not othersServe the full chain file
Comparing what is on disk with what is served
# What the server is actually presenting
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -dates

# What is on disk
openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -noout -dates

# Different answers mean the server needs a reload:
sudo systemctl reload nginx

Fixing it now

Verify from outside because a local check can hit a different virtual host or a cached process. The SSL checker reads the live handshake, which is the only view that matches what a visitor gets.

  1. 1Confirm the served certificate is genuinely expired, rather than a client clock being wrong.
  2. 2Compare the served dates with the file on disk — if they differ, reload the server and you are done.
  3. 3If the file itself is expired, run the renewal manually and read its output rather than assuming success.
  4. 4If renewal fails, the cause is almost always validation: the HTTP challenge path is blocked, or DNS has changed.
  5. 5After renewal, reload the server and verify from outside, not from the host itself.
  6. 6Check every hostname on the certificate — a SAN entry that no longer resolves will fail validation for all of them.

Preventing the next one

Alerting on the file rather than the connection is the mistake that lets this recur — the file can be perfectly current while the server serves something else entirely.

  • Monitor the served certificate, not the file — that is where the gap appears.
  • Alert at 21 days remaining, not 7. Let's Encrypt renews at 30, so an alert at 21 means renewal has already failed twice.
  • Make the reload part of the renewal hook so it can never be forgotten.
  • Run the renewal timer on a schedule that gives several attempts before expiry.
  • Keep the certificate on as few hostnames as practical; each SAN entry is another way for validation to fail.

How DomainLens contributes

DomainLens reads the certificate a host actually presents and reports the issuer, validity window and days remaining as part of every audit — so an expiry approaching in three weeks is visible long before it becomes an outage. For automated renewal see certbot and Let's Encrypt , and for installation see installing an SSL certificate .

I renewed the certificate but the site still shows it expired. Why?
The web server is still running with the old certificate in memory. Reload or restart it so the renewed file is served.
How long does an expired certificate take to hurt rankings?
Traffic collapses immediately because of the browser warning. Ranking damage takes longer — days rather than hours — but the traffic loss is the urgent part.
Can I keep serving the site over HTTP while I fix it?
Only if the site has no HSTS header. With HSTS, browsers refuse to connect over HTTP at all, and there is no fallback.
Why did automatic renewal fail?
Usually validation: the /.well-known/acme-challenge path is blocked or redirected, a firewall rule changed, or DNS moved. The renewal log names the specific failure.

Перевір це на своєму сайті

Схожі ресурси