As I previously had more than five subdomains for which I was using separate certificates, what was expected to happen finally happened: I was blocked because of the rate limit (possibly six or more certificates were renewed in the same week).
I successfully solved this problem by migrating to a wildcard certificate, going from a dozen certificates to just two: a wildcard one, and the one for the domain itself. It was about time.
However, this morning I learned that I hit the same limit again.
Both the time when I hit the limit the first time, and this morning, I found it unfortunate that the API doesn’t tell anything about the time it would take to be unblocked. I find myself with my primary website completely unavailable (because of the Strict-Transport-Security
HTTP header, I can’t switch to HTTP, so my only option to have a working site right now is to switch to a paid CA), and more importantly, I have no clue whether I’ll have to wait for the whole week for my website to become available, or I will be able to renew the certificate before that.
According to the logs of certbot, the response from acme-v02.api.letsencrypt.org is simply:
{
"type": "urn:ietf:params:acme:error:rateLimited",
"detail": "Error creating new order :: too many certificates already issued for exact set of domains: ...: see https://letsencrypt.org/docs/rate-limits/",
"status": 429
}
and there is no indication as to how long would it take to be able to renew the expired certificate.
Would it be possible to indicate in the API response how long one would be rate-limited? So to have something like:
{
"type": "urn:ietf:params:acme:error:rateLimited",
"detail": "Error creating new order :: too many certificates already issued for exact set of domains: ...: see https://letsencrypt.org/docs/rate-limits/",
"status": 429,
"can-renew-after-seconds": 603821
}