top | item 44182184

How we reduced the impact of zombie clients

184 points| jaas | 9 months ago |letsencrypt.org

39 comments

order

cibyr|9 months ago

The self-service unpause is brilliant. The worst thing about hitting these sorts of limits is that time window when you think you've fixed the problem but you can't check because you're throttled - so there's nothing you can do but wait. Giving literally any affordance so that a human can make progress with a fix removes this huge source of frustration.

philjohn|9 months ago

That's what the staging CA is for - and why it has much higher rate limits.

efitz|9 months ago

I really appreciate the thoughtful and non-punitive approach, and intend to add your self-service-unpause approach to my own arsenal of tricks.

meltyness|9 months ago

My server got renewal halted. I rolled my own wrapper for certbot. Idk it's just a blog, I'm not that attached. It hit some rock a few months ago, I just retried and manually installed it, and it seems to have perked back up and continued receiving certs. Probably would have been more frustrating if it were a huge fleet but, it wasn't even worth my time to check logs and figure out what precisely happened (cert distributed with a modified that didn't match the ASN.1 expiry? transient issuance failure? issues the same cert? ...who knows.)

globie|9 months ago

Were you running certbot multiple times per day?

Looking at the relevant limit, "Consecutive Authorization Failures per Hostname per Account"[0], it looks like there's no way to hit that specific limit if you only run once per day.

Ah, to think how many cronjobs are out there running certbot on * * * * *!

[0]: https://letsencrypt.org/docs/rate-limits/#consecutive-author...

aorth|9 months ago

Happy to be running Caddy on a growing number of servers instead of renewing certs through certbot. Caddy has really good defaults and does the right thing with TLS certs without much hassle. Less moving parts too.

NicolaiS|9 months ago

Agree

Caddy even supports 'ACME profiles' for people that want to follow the latest recommendation from CAB / want shortlived certs

greatgib|9 months ago

As they have the account email, they could also notify of the issue by email when there are too many issues renewing for too long.

xp84|9 months ago

Sure, and they must have already emailed the person when they failed to get a new cert before their last one expired. But I suspect a lot of people don't use a real email address for LE, since there's no enforcement/verification. Or they might be using one that isn't their main one.

TonyTrapp|9 months ago

A Let's Encrypt account is not required to be associated with an email address.

undebuggable|9 months ago

I highly appreciate their saintlike patience to my buggy cronjobs and snippy requests.

smallnix|9 months ago

Thanks for all the work that goes into this crucial service!

3% and "3,200 people manually unpaused issuance" does seem much higher than expected to me and no cause for celebration, especially at this scale.

Are there no better patterns to be exploited to identify 'zombies'? Running experiments with blocking and then unblocking to validate should work here.

I guess this falls into the bucket of: sure we can do that, given sufficient time and resources

tux1968|9 months ago

Why do you think that this indicates a problem in identifying zombies? The pause may have simply been the reason that someone became aware there was even a problem. The zombie might have persisted, if it hadn't been paused.

Palomides|9 months ago

I'm kinda surprised they bothered, it's only caught 100,000 out of the 600,000,000 domains they handle?

wolfgang42|9 months ago

A working domain needs one validation every ~60 days, but these zombie domains sound like they’re making multiple requests per hour (per the article, twice daily would still take 10 years to hit the limit) which is a massively disproportionate amount of resources.

jadbox|9 months ago

Does the Unpause button have a CAPTCHA, because it's only a matter of time when software will try to auto-unpause if there's a failure... and the cycle repeats. Hence CAPTCHA on the button should at least discourage software devs from automating the process of unpausing.

RadiozRadioz|8 months ago

No, I don't think that will happen at large because there's no good reason for it.

If this is the error that you're getting, then hitting unpause won't make the certificate requests start working. You'll just go back to receiving the persistent error messages from before the pause.

What do you gain by automating it? This isn't an error that you'll experience in day-to-day successful operation. It's not an error that reoccurs after resolution because it can be removed for years with one action. This lock will only happen if a cert request is consistently broken for a really long time.

Fixing the underlying cause of the cert issuance failures requires human intervention anyway, a human can easily click the button. They also provide first-class support for bulk enablement.

The motivations for automating button are extremely small.

tough|8 months ago

aren't captchas a solved automation problem nowadays

saagarjha|9 months ago

I’m curious if they could send emails to accounts indicating that they plan to shut off their access?