Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rate limit documentation missing overall request rate limits #2450

Closed
jmhodges opened this issue Dec 25, 2016 · 5 comments
Closed

Rate limit documentation missing overall request rate limits #2450

jmhodges opened this issue Dec 25, 2016 · 5 comments

Comments

@jmhodges
Copy link
Contributor

It seems that sending HEAD to https://acme-v01.api.letsencrypt.org/acme/new-authz can, in some cases, cause you to hit some rate limit and get a 429 returned. That's unexpected for HEAD since HEAD is equivalent to a GET, not POST, and shouldn't be causing any writes to occur.

I'm not clear on why the wfe code for NewAuthorization and method handling aren't catching this first, but they aren't.

I ran into this because the 429's do not have a replay-nonce response header on them and crypto/acme was breaking on that.

I have a ticket for crypto/acme on this, but this seems like it ought to be fixed both there and in boulder itself.

jmhodges added a commit to jmhodges/lekube that referenced this issue Dec 26, 2016
There's apparently a request-per-IP-per-endpoint rate limit that Let's
Encrypt hasn't publicized and lekube was hitting it by doing
authorizations in parallel.

Related ticket for boulder:
letsencrypt/boulder#2450
jmhodges added a commit to jmhodges/lekube that referenced this issue Dec 26, 2016
There's apparently a request-per-IP-per-endpoint rate limit that Let's
Encrypt hasn't publicized and lekube was hitting it by doing
authorizations in parallel.

Related ticket for boulder:
letsencrypt/boulder#2450
@cpu
Copy link
Contributor

cpu commented Dec 28, 2016

From the crypto/acme thread it looks like you figured this out:

the 429s from Let's Encrypt are a new, currently undocumented request-per-IP-per-endpoint-per-second rate limit that's set fairly low

I'm not clear on why the wfe code for NewAuthorization and method handling aren't catching this first, but they aren't.

The request-per-IP-per-endpoint limit is being applied before the WFE.

@cpu cpu changed the title sending HEAD to new-authz causes rate limit hits Rate limit documentation missing overall request rate limits Dec 28, 2016
@cpu cpu self-assigned this Dec 28, 2016
@cpu cpu added this to the Sprint 2016-12-27 milestone Dec 28, 2016
@jmhodges
Copy link
Contributor Author

Okay! If it's the deal, it's set pretty low when, say, calling for the authorizations of a cert with a number of domains in it in parallel.

@cpu
Copy link
Contributor

cpu commented Dec 29, 2016

@jmhodges That's fair feedback. I expect we're going to be revisiting the specific limit thresholds after the holiday period. In the mean-time I'll get the existing limits on the docs page - its no fun hitting undocumented rate limits.

@cpu
Copy link
Contributor

cpu commented Dec 29, 2016

Opened letsencrypt/website#118 for adding the limits as they exist today to the rate limits documentation.

@cpu
Copy link
Contributor

cpu commented Dec 30, 2016

letsencrypt/website#118 was merged. Website should be updated with the new rate limits documentation in the next while.

@cpu cpu closed this as completed Dec 30, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants