← Back to blog
CERT RENEWAL nodetonet.com

Let's Encrypt auto-renewal — how Nodetonet keeps your certs alive

N Nodetonet Team
April 6, 2026 7 min read

Let's Encrypt certificates expire after 90 days. That window is short enough that any manual renewal process is a quarterly outage waiting to happen — and on a platform that routes traffic through multiple HTTP tunnels, mobile proxies and VPN endpoints, an expired cert means every connection drops at once. So Nodetonet runs a fully automated renewal pipeline with retries, exponential backoff and a clear escalation path when something genuinely breaks. This post is the complete picture of what that pipeline does, what triggers an alert, and what you can do if a domain goes red.

TL;DR: Certs renew automatically 30 days before expiry via DNS-01 challenge. If Let's Encrypt is rate-limiting or unreachable, the queue retries with backoff for up to 27 days. If a cert reaches 7 days to expiry without renewing, you get an email and the panel shows the exact ACME error.

Why 90-day certificates? Why automate?

Let's Encrypt chose a 90-day lifetime deliberately: it limits the damage window if a private key is ever compromised, and it forces automation because no team reliably remembers a quarterly to-do. Nodetonet issues wildcard certificates that cover every subdomain you point at the platform, so one lapsed renewal would break your tunnel URLs, your proxy endpoints and any white-label domain you have under management.

Automation removes the human dependency entirely. The renewal job runs as the platform's own identity — not yours — so there are no credentials to rotate, no personal access tokens to expire, and nothing to install on your own machines. All you need is to keep your domain's NS records pointed at our nameservers, which is the same prerequisite as bringing your own domain in the first place.

The renewal trigger: 30 days before expiry

A scheduled job scans the certificate fleet every hour. For each cert in the database it checks the notAfter timestamp. The moment a cert is fewer than 30 days from expiry, the renewal queue picks it up on the next hourly pass.

Thirty days is slightly later than Let's Encrypt's own recommended 60-day trigger, and that is intentional. Renewal traffic consumes rate-limit budget shared across the platform, and certificates that renew at 60 days leave a shorter absolute buffer if something goes wrong. Thirty days still gives four full weeks of retry headroom before any user-visible breakage. For new domains — added just before expiry, for instance — the same logic applies: any cert with fewer than 30 days left enters the queue immediately.

What a renewal actually does

Structurally, a renewal is identical to first issuance. The pipeline:

  1. Generates a new private key — the old key is never reused, because reuse would defeat the rotation benefit of a 90-day cert.
  2. Sends a DNS-01 challenge request to Let's Encrypt, which responds with a token that must appear as a _acme-challenge TXT record under your domain. Because Nodetonet runs the authoritative nameserver for your domain, it writes that record automatically — no action needed on your end.
  3. Lets DNS propagate (a few seconds on our authoritative cluster), then notifies Let's Encrypt to validate.
  4. Receives the signed certificate chain and deploys it to every edge node in the data plane.

The hot-swap is seamless: TLS sessions in flight continue on the old cert until they close naturally; new connections pick up the fresh one immediately. The total end-to-end time from trigger to live cert is typically under two minutes, invisible to any client.

Rate-limit handling: exponential backoff

Let's Encrypt enforces rate limits — most importantly, a cap on certificate issuances per domain per week. If the platform hits that cap, or if Let's Encrypt returns any transient error, the queue does not hammer it. Instead it backs off exponentially:

AttemptDelay before next tryCumulative wait
1 (first)Immediate
2+15 minutes15 min
3+1 hour~1 h 15 min
4+4 hours~5 h 15 min
5+12 hours~17 h 15 min
6++24 hours (repeated daily)Up to expiry − 3 days

That schedule means a domain queued 30 days before expiry has roughly 27 daily retries in the worst case before it becomes critical. Even a week-long Let's Encrypt outage — which has never happened — would leave the cert valid through the full outage and well beyond.

The most common cause of rate-limit hits is bulk re-issuance: if many domains on the same root have certs expiring around the same time, the hourly job staggers them automatically by priority (nearest-to-expiry first). You do not need to do anything; the queue self-throttles.

The 7-day alert: when you hear from us

If after repeated attempts the cert reaches 7 days to expiry without a successful renewal, the platform escalates:

At this point your cert is still valid for seven days. You have time to diagnose and act rather than fighting a live outage.

The "Renew now" button and when to use it

The domain detail page exposes a Renew now button. It does one thing: it places the domain at the front of the renewal queue and bypasses the backoff timer. It does not bypass Let's Encrypt itself — so clicking it repeatedly can exhaust Let's Encrypt's per-domain rate limit faster, and the panel will tell you if that happens and lock the button for an hour.

Use it when you have a specific reason to believe the previous failure was a one-off: a transient DNS propagation lag, a brief ACME server error that is now resolved, or a NS record you just corrected. If the renewal queue is already retrying on a sensible schedule, there is no benefit to clicking Renew now — you just advance the next scheduled attempt.

Reading the SSL events log

Every renewal attempt — successful or not — is written to the SSL Events tab under the domain's detail page on /domains. Each entry shows:

Logs are retained for 12 months. If you are troubleshooting an intermittent renewal issue, the events log gives you the exact sequence of attempts and errors without needing to open a support ticket. If you do need help, see getting help: the support flow.

Common root causes for renewal failures

For anything not on that list, the SSL Events log and the email alert both include the raw ACME error. That error code is documented at the Let's Encrypt errors reference and usually points directly at the fix.

What about certificates for proxies and tunnels?

SSL matters beyond just web pages. If you use Nodetonet's HTTP tunnels to expose a local service — or serve a white-label reseller domain — the certificate covering that subdomain follows the same auto-renewal pipeline. The same 30-day trigger, same backoff, same escalation. Your tunnel clients never notice a renewal because the hot-swap happens at the edge layer. For proxy traffic over HTTPS, see also HTTPS proxies and SNI routing.

What's next

Frequently asked questions

Do I need to do anything to renew my TLS certificate on Nodetonet?
No. Renewal is fully automatic. The platform monitors every certificate and triggers renewal 30 days before expiry using a DNS-01 challenge against your domain — which it can answer itself because it runs your authoritative nameserver. You only need to act if you receive a 7-day alert email.
What causes a Let's Encrypt renewal to fail?
The most common cause is NS records drifting away from Nodetonet's nameservers — if Let's Encrypt cannot see the DNS-01 challenge TXT record we write, it rejects the validation. Rate-limiting is the second most common cause during heavy domain additions. Both are reported with exact ACME error codes in the SSL Events log under /domains.
What happens if my certificate expires before it renews?
Browsers and clients will reject connections to that domain with a certificate error. The platform escalates to email alerts at 7 days before expiry, giving you time to diagnose and fix the problem. If you need to force a retry immediately, use the Renew now button on the domain's detail page.
How does Nodetonet answer DNS-01 challenges without my involvement?
When you bring your own domain and point its NS records to Nodetonet's nameservers, we control the authoritative DNS zone. That means we can write any TXT record — including the _acme-challenge token Let's Encrypt requires — instantly, without your intervention. See the authoritative DNS blog post for the full explanation.
Does certificate renewal affect my proxy or tunnel connections?
No. The new certificate is hot-swapped at the edge layer without dropping live connections. Existing TLS sessions stay on the old cert until they close naturally; new connections pick up the fresh cert immediately. The renewal is completely transparent to your clients.
What does the exponential backoff mean for my domain if Let's Encrypt is down?
The renewal queue retries on a schedule that grows from 15 minutes to 24 hours between attempts, and continues daily until 3 days before expiry. A domain queued 30 days before expiry gets roughly 27 daily retries in the worst case. This means even multi-day outages at Let's Encrypt do not put your certificate at risk.
N

Nodetonet Team

Building Nodetonet — a prepaid proxy + tunneling platform that replaces ngrok, Cloudflared and a residential proxy provider with a single panel.

Related posts