Quick answer: Let's Encrypt certificates live 90 days and certbot renews them automatically via a systemd timer — normally you do nothing. To check the automation, run sudo certbot renew --dry-run; to force a renewal, sudo certbot renew.

Overview

Certbot installs a timer that runs twice a day and renews any certificate with less than 30 days left. Renewal repeats the original validation, so whatever made issuance work (DNS pointing here, port 80 open) must still be true months later — that is where renewals usually break.

Before you start

  • SSH access with sudo.
  • Know your current certificates and expiry dates:
sudo certbot certificates

Step-by-step guide

  1. Confirm the automation is active:
systemctl list-timers | grep certbot
  1. Simulate a renewal without touching real certificates:
sudo certbot renew --dry-run
  1. If the dry run passes, you are done — renewals will happen unattended.
  2. If a certificate is already close to expiry and you want it renewed now:
sudo certbot renew
sudo systemctl reload nginx   # or apache2 — load the fresh certificate

Common issues

  • Dry run fails with a challenge error: port 80 got firewalled since issuance, or DNS moved — restore reachability.
  • Renewed on disk but browser shows the old expiry: the web server was not reloaded; add a --deploy-hook "systemctl reload nginx".
  • Certificate for a domain you dropped: certbot keeps trying and failing; remove it with sudo certbot delete.

When to contact support

If renewals fail with network-level errors from a Cloud2Y server (timeouts to the ACME API while the rest of the network is fine), open a ticket with the certbot log from /var/log/letsencrypt/.

Frequently asked questions

Do Let's Encrypt certificates renew automatically?

Yes — certbot installs a systemd timer that checks twice daily and renews certificates with under 30 days left. Verify it with sudo certbot renew --dry-run once after setup.

Why did my certificate expire despite certbot?

Renewal repeats the original validation, so it breaks when port 80 gets firewalled, DNS moves away, or the web server config changed. The dry-run command reveals the exact error.

The certificate renewed but the browser shows the old one — why?

The web server is still serving the old file from memory. Reload nginx or Apache after renewal, or add a deploy hook so certbot reloads it automatically every time.

Related articles

Ready to get started? Order a VPS at Cloud2Y →

Was this answer helpful? 0 Users Found This Useful (0 Votes)