Back to knowledge center
How to Renew an SSL Certificate: Step-by-Step Guide for 2026
guides Johan Holm 10 min9/4/2026

How to Renew an SSL Certificate: Step-by-Step Guide for 2026

Renew an SSL certificate the right way: Certbot commands for Let's Encrypt, the CSR and validation flow for paid certificates, hosting panel and CDN renewals, and how to verify the new certificate is live. Updated for the 200-day and 47-day lifetime rules.

Run the same check right now โ€” free

Enter your domain and get a 9-point audit โ€” DNS, SPF/DKIM/DMARC, SSL, security headers, dark-web exposure โ€” in 60 seconds.

No signup ยท <60s ยท GDPR/EU processing

How to Renew an SSL Certificate: Step-by-Step Guide for 2026

To renew an SSL certificate, you generate a fresh certificate for the same domain before the old one expires, install it on your server or platform, and confirm the new expiry date. If you use Let's Encrypt, one command (certbot renew) does all of it and a timer runs it for you twice a day. If you bought a certificate from a commercial CA, you create a new CSR, complete domain validation again, download the new files and swap them in. This guide covers both paths, plus hosting panels and CDNs, and shows how to verify the renewal worked.

The stakes are rising. Since 15 March 2026 no public CA may issue a certificate valid for more than 200 days, and the cap drops to 47 days in 2029 (CA/Browser Forum ballot SC-081v3, approved April 2025). Renewal is no longer a once-a-year chore. It is becoming a continuous process, and the only realistic way to keep up is automation.

Wall calendar with a marker pen, symbolising the recurring SSL certificate renewal schedule

Why SSL certificate renewal matters more in 2026

An expired certificate does not degrade gracefully. Browsers block the page with a full-screen warning (NET::ERR_CERT_DATE_INVALID in Chrome), API clients fail their TLS handshake, and email and monitoring integrations start throwing errors. A single forgotten renewal took down Microsoft Teams for roughly three hours on 3 February 2020 (TechCrunch), and an expired certificate in Ericsson equipment knocked out mobile data for millions of O2 and SoftBank customers on 6 December 2018 (The Register).

Shorter lifetimes multiply the number of renewals you have to get right. The table below shows the industry schedule that every public CA must follow.

Effective dateMaximum certificate validityMaximum domain-validation reuseSource
Before 15 March 2026398 days398 daysCA/B Forum Baseline Requirements
15 March 2026 (in force now)200 days200 daysSC-081v3
15 March 2027100 days100 daysSC-081v3
15 March 202947 days10 daysSC-081v3

Let's Encrypt, which reported serving more than 700 million websites and issuing over ten million certificates on a single day in late 2025 (Let's Encrypt, 9 December 2025), is moving faster than the mandate: its default profile switches from 90-day to 64-day certificates on 10 February 2027 and to 45-day certificates on 16 February 2028 (Let's Encrypt, 2 December 2025).

Bar chart showing how many renewals per year each certificate needs at 398, 200, 100, 90, 47 and 45 day lifetimes, rising from under one to more than eight

Renewals per year for one certificate at each maximum lifetime (365 divided by the lifetime in days). Sources: CA/Browser Forum SC-081v3; Let's Encrypt, 2 December 2025. A site with ten certificates on 47-day lifetimes needs about 78 successful renewals a year.

Step 1: Find out how your certificate was issued

The renewal method depends entirely on where the certificate came from. Run this on the server to see the issuer and expiry date:

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -issuer -dates

The issuer line tells you which path to follow.

Issuer shownTypical setupHow you renew
Let's Encrypt (R10, R11, E5, E6 etc.)Certbot, acme.sh, Caddy, TraefikAutomated via ACME; check the timer, never renew by hand
DigiCert, Sectigo, GlobalSign, GoDaddyPurchased DV/OV/EV certificateNew CSR, re-validate domain, install new files
cPanel, Inc. or Sectigo via AutoSSLShared hosting with cPanelAutomatic; check the SSL/TLS Status page
Cloudflare, Google Trust Services, AmazonCDN or cloud edge certificateManaged by the platform; confirm DNS or CNAME validation still resolves
Your own company nameInternal CAReissue from your PKI; not covered here

Step 2a: Renew a Let's Encrypt certificate with Certbot

Let's Encrypt certificates are valid for 90 days today and Certbot's packaged timer tries to renew them twice a day, renewing only when fewer than 30 days remain (Certbot documentation). If a site is showing an expired Let's Encrypt certificate, the automation has been failing for at least a month.

First list what Certbot knows about:

sudo certbot certificates

Then test a renewal without touching anything:

sudo certbot renew --dry-run

If the dry run passes, run the real renewal and reload your web server:

sudo certbot renew
sudo systemctl reload nginx

Certbot will say "Cert not yet due for renewal" if more than 30 days remain; that is normal. To renew early regardless (for example after changing the key size), add --force-renewal to a single certificate with certbot renew --cert-name example.com --force-renewal, but never leave it in a cron job, because Let's Encrypt rate-limits duplicate certificates to 5 per week.

Check that the timer is active so this keeps happening without you:

systemctl list-timers | grep certbot

Two changes since 2025 matter here. Let's Encrypt stopped sending expiry-warning emails on 4 June 2025 and deleted the addresses it held (Let's Encrypt, 26 June 2025), so nobody will nudge you. And modern ACME clients can ask the CA for a suggested renewal window through ACME Renewal Information (ARI, RFC 9773), which Certbot uses from version 2.9 onward. Keep the client updated so that it follows ARI rather than a hard-coded interval; Let's Encrypt explicitly warns that renewing at a fixed 60 days will not survive the move to 45-day certificates.

Laptop on a desk with a terminal window open, representing server-side certificate renewal work

Step 2b: Renew a purchased certificate (DigiCert, Sectigo, GoDaddy and others)

Commercial certificates cannot be "extended". Renewal means the CA issues a brand-new certificate, so the process mirrors the original order.

  1. Generate a new private key and CSR on the server. Reusing the old key is allowed but weakens the security benefit of renewing.
openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr -subj "/CN=example.com"
  1. Submit the CSR in the CA portal under Renew or Reissue. Most CAs let you start 30 to 90 days early and carry the remaining days over.
  2. Complete domain validation again. Since 15 March 2026 a validation can only be reused for 200 days, so expect an email, HTTP file or DNS TXT challenge on almost every renewal. OV and EV certificates also need organisation checks; start those two weeks ahead.
  3. Download the certificate and the intermediate chain. Missing intermediates cause ERR_CERT_AUTHORITY_INVALID on some devices even when the leaf certificate is fine.
  4. Install and reload. Replace the certificate and chain files referenced in your server config, keep the new key alongside, and reload the service. On nginx that is ssl_certificate and ssl_certificate_key; on Apache, SSLCertificateFile and SSLCertificateKeyFile.
  5. Update every copy. Load balancers, mail servers, CDN origins and monitoring probes often hold their own copy of the same certificate.

Step 2c: Renew on hosting panels, CDNs and cloud platforms

PlatformWhat renews itWhat can break renewalWhere to check
cPanel AutoSSLDaily cron on the hostDomain not pointing at the server, .htaccess blocking /.well-known/SSL/TLS Status in cPanel
Plesk (Let's Encrypt extension)Built-in scheduled taskSame as above; expired domainWebsites and Domains, SSL/TLS Certificates
Cloudflare Universal SSLCloudflare, automaticallyProxy turned off (grey cloud); CAA record excluding Cloudflare's CAsSSL/TLS, Edge Certificates
AWS Certificate ManagerACM, automatically for DNS-validated certsValidation CNAME removed from Route 53ACM console, certificate status
Kubernetes cert-managerController, renews at two thirds of lifetime by defaultIngress class mismatch; solver pod cannot be reachedkubectl describe certificate
Caddy / TraefikBuilt-in ACME clientPort 80 or 443 unreachable from the internetServer logs

Step 3: Verify the renewal actually worked

Renewing and deploying are two different things. A renewed file sitting on disk does nothing until the server process has loaded it. Confirm from the outside:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate -serial

The notAfter date must be the new one and the serial number must differ from the old certificate. Then check the full chain and every host name (www and bare domain, API subdomains, mail hosts). A free FortifyNet scan checks the chain, expiry date, protocol versions and HSTS in one pass, which is faster than testing each host by hand.

Common SSL renewal errors and fixes

Error or symptomLikely causeFix
Certbot: "Some challenges have failed" (HTTP-01)Port 80 blocked, redirect loop, or DNS pointing elsewhereAllow port 80 inbound, keep /.well-known/acme-challenge/ reachable over plain HTTP
Certbot: "too many certificates already issued"Forced renewals in a loopRemove --force-renewal from scheduled jobs, wait for the weekly window
DNS-01 "no TXT record found"Propagation delay or wrong zoneAdd a propagation wait, confirm the API token has zone edit rights
Browser still shows the old expiry after renewalService not reloaded, or CDN caching the old certReload nginx/Apache; purge or re-upload at the CDN
ERR_CERT_AUTHORITY_INVALID after installIntermediate chain missingInstall the full chain file the CA provides, not only the leaf
Certificate renewed but mail clients complainMail server uses its own copyDeploy the same files to Postfix/Dovecot/Exchange and restart
CAA lookup failureCAA record lists other CAs onlyAdd 0 issue "letsencrypt.org" (or your CA) to the CAA record

Set a renewal policy you can actually keep

With 200-day certificates now and 47-day certificates by 2029, a renewal policy should be boring and automatic. Renew at roughly two thirds of the certificate's lifetime, exactly the behaviour Let's Encrypt recommends for clients that lack ARI. Run a monitoring check that alerts at 14 and 7 days before expiry, independent of the renewal tool, because the failure you need to catch is the automation silently stopping. Keep an inventory of every host name that terminates TLS, including internal ones. And test the dry run after every server migration, PHP upgrade or firewall change, since those are the moments the ACME challenge stops working.

FAQ

How early can I renew an SSL certificate? Let's Encrypt allows renewal at any time, and Certbot does it automatically 30 days before expiry. Commercial CAs typically open renewal 30 to 90 days early and add the unused days to the new certificate.

Does renewing an SSL certificate cause downtime? No, if you reload rather than restart the web server. nginx and Apache both load the new certificate on a reload without dropping existing connections.

Do I need a new private key to renew? Not strictly, but generating a new key is best practice. Certbot creates a new key on every renewal by default.

Can I renew a certificate after it has expired? Yes. Renewal after expiry works the same way; the only difference is that visitors see warnings until the new certificate is installed.

How many times a year will I have to renew from 2029? With the 47-day maximum, about eight times per certificate per year, which is why manual renewal is being phased out in practice.

Check your certificate before it becomes an incident

Run the free FortifyNet scan on your domain. In about 60 seconds it reports the certificate expiry date, chain validity, protocol versions, security headers, DNS and email authentication, so a failed renewal shows up before your visitors find it.

Frequently Asked Questions

#ssl#tls#certificates#certbot#lets-encrypt

Check your domain now

Run a free security audit and see if your domain has the issues described in this article.

Cookie Settings

We use cookies to improve your experience. You can choose which cookies to accept.