-
Notifications
You must be signed in to change notification settings - Fork 575
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
# Latest from Crowdin - Updates in Chinese (China) Co-authored-by: Ludek Janda <[email protected]>
- Loading branch information
1 parent
916f851
commit ededbf6
Showing
1 changed file
with
158 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,165 @@ | ||
--- | ||
title: Rate Limits | ||
title: 速率限制 | ||
slug: rate-limits | ||
date: 2018-01-04 | ||
lastmod: 2024-10-22 | ||
show_lastmod: true | ||
untranslated: 1 | ||
--- | ||
|
||
为保证尽可能多的人可以公平使用我们的服务,Let's Encrypt 采取了速率限制措施。 我们相信这一限制足以满足大多数人的正常需求。 此外,我们的设计使得证书续期几乎不可能触发速率限制,即使是大型机构也可以逐步增加证书数量,无需 Let's Encrypt 干预。 | ||
|
||
如果您正在开发或测试一款 Let’s Encrypt 客户端,请使用我们的[测试环境](/docs/staging-environment),而不要使用生产环境的接口。 如果您准备将 Let’s Encrypt 作为证书提供商或用于大型网站中,请查阅我们的[集成指南](/docs/integration-guide)。 | ||
|
||
# 速率限制的方式 | ||
|
||
我们采用[漏桶算法](https://en.wikipedia.org/wiki/Leaky_bucket#As_a_meter)对请求次数实行速率限制, 因此您可以自由选择调用策略, 既可以在不超过数量上限的前提下一次性发起大量请求,也可以分批次完成接口调用以避免触发速率限制。 | ||
|
||
如果您不慎触发了速率限制,我们无法临时为您解除。 但不必担心,您的请求额度将随时间逐渐恢复,无需任何操作就能继续发起新的请求。 吊销现有证书**并不能**解除速率限制,因为我们签发证书所消耗的资源已经无法回收。 请参阅下文[触发速率限制后如何重试](#触发速率限制后如何重试)了解详情。 | ||
|
||
# 账户注册限制 | ||
|
||
以下是我们对于 `new-account` 接口所设置的速率限制。 此类限制极少被触发, 我们建议大型集成商采取[多个客户对应一个账户](/docs/integration-guide)的设计。 | ||
|
||
<div class="boxed"> | ||
|
||
## 单个 IP 地址注册限制 | ||
|
||
每个 IP 地址每 3 个小时最多可注册 10 个账户。 注册额度的恢复速率为每 18 分钟可再创建 1 个账户。 | ||
|
||
### 豁免 | ||
|
||
此限制**不**提供豁免途径。 | ||
|
||
</div> | ||
<div class="boxed"> | ||
|
||
## 单个 IPv6 子网注册限制 | ||
|
||
每个 /48 的 IPv6 子网每 3 个小时最多可注册 500 个账户。 | ||
注册额度的恢复速率为每 22 秒可再创建 1 个账户。 | ||
|
||
### 豁免 | ||
|
||
此限制**不**提供豁免途径。 | ||
|
||
</div> | ||
|
||
# 证书签发限制 | ||
|
||
以下是我们对于 `new-order` 接口所设置的速率限制。 触发此类限制较为常见,尤其是在大型托管服务商及需要为大量域名申请证书的机构中。 | ||
|
||
<div class="boxed"> | ||
|
||
## 单个账户证书申请限制 | ||
|
||
每次请求 Let’s Encrypt 签发一份证书即视为一次申请。 | ||
每份证书最多可包含 100 个域名, 但出于性能考虑,一份证书中的域名越少越好。 | ||
|
||
### 限制 | ||
|
||
每个账户每 3 个小时最多可申请 300 份证书。 申请额度的恢复速率为每 36 秒可再申请一份证书。 | ||
|
||
### 豁免 | ||
|
||
为特定账户[申请豁免](https://isrg.formstack.com/forms/rate_limit_adjustment_request)通过后方可越过此限制。 | ||
|
||
</div> | ||
<div class="boxed"> | ||
|
||
## 单个注册域名证书申请限制 | ||
|
||
一般而言,注册域名即您向域名注册商购买的那一部分域名。 例如,`www.example.com` 对应的注册域名为 `example.com`, 而 `new.blog.example.co.uk` 对应的注册域名则为 `example.co.uk`。 我们依据[公共后缀列表](https://publicsuffix.org/)来确定注册域名。 | ||
|
||
### 限制 | ||
|
||
每个注册域名每 7 天最多可申请 50 份证书。 这一限制全局有效,即使是其他账户申请的证书也计算在内。 申请额度的恢复速率为每 202 分钟可再申请一份证书。 | ||
|
||
### 豁免 | ||
|
||
为特定的注册域名或账户[申请豁免](https://isrg.formstack.com/forms/rate_limit_adjustment_request)通过后方可越过此限制。 | ||
|
||
</div> | ||
<div class="boxed"> | ||
|
||
## 相同域名集合证书申请限制 | ||
|
||
假设您申请了一份对 `example.com` 和 `login.example.com` 都有效的证书,则该证书的「域名集合」为 `[example.com, login.example.com]`。 倘若您申请的证书只对 `example.co.uk` 有效,那么域名集合就是 `[example.co.uk]`。 | ||
|
||
### 限制 | ||
|
||
同一个域名集合每 7 天最多可申请 5 份证书。 | ||
这一限制全局有效,即使是其他账户申请的证书也计算在内。 申请额度的恢复速率为每 34 小时可再申请一份证书。 | ||
|
||
### 常见原因 | ||
|
||
反复重装客户端程序来排查问题或者频繁删除 ACME 客户端配置信息都是触发此限制的常见原因。 为此我们有意将此限制设定得较为严苛,以防故障的系统或不完善的软件将其他速率限制的额度迅速耗尽。 | ||
|
||
测试或调试应用程序时建议使用[测试环境](/docs/staging-environment),其速率限制会[宽松很多](/docs/staging-environment/#rate-limits)。 | ||
|
||
### 解决方法 | ||
|
||
触发此限制后可以通过添加额外的域名(如 `blog.example.com`)继续申请证书, 但需要注意此类证书不会被视为对已有证书的续期, 因此将受到[单个账户证书申请限制](#单个账户证书申请限制)和[单个注册域名证书申请限制](#单个注册域名证书申请限制)的约束。 | ||
|
||
### 豁免 | ||
|
||
此限制**不**提供豁免途径。 | ||
|
||
</div> | ||
<div class="boxed"> | ||
|
||
## 单个账户及域名验证失败次数限制 | ||
|
||
证书申请中每个域名的有效性都需要验证, 所有域名均验证通过后证书才能签发。 验证失败意味着 Let’s Encrypt 成功发出了验证请求,但未得到任何能证明域名归属的信息。 | ||
|
||
### 限制 | ||
|
||
每个账户下每个域名每小时最多可验证失败 5 次。 验证额度的恢复速率为每个域名每 12 分钟可再验证一次。 触发这一限制后,该账户就无法再为此域名申请任何证书,直到限制解除。 | ||
|
||
### 常见原因 | ||
|
||
排查问题前建议先将客户端配置改为使用[测试环境](/docs/staging-environment), 其速率限制会[宽松很多](/docs/staging-environment/#rate-limits),可以避免定位及解决问题的过程中消耗生产环境的请求额度。 | ||
|
||
- `HTTP-01` 和 `TLS-ALPN-01` 验证失败的原因通常是网络或防火墙配置导致 Let's Encrypt 无法与您的服务器建立连接。 | ||
|
||
- `DNS-01` 验证失败则一般是由于配置过程中遗漏了步骤或输入的内容有误。 这种验证方式往往需要您先在主 DNS 域中创建 CNAME 记录,以便客户端在验证过程中进一步设置其他 DNS 记录。 | ||
|
||
### 豁免 | ||
|
||
此限制**不**提供豁免途径。 | ||
|
||
</div> | ||
|
||
# 证书续期的例外条件 | ||
|
||
Let's Encrypt 有两种方式认定证书申请是否属于续期:推荐的方式是 ACME Renewal Info (ARI),不受任何速率限制;另一种方式则是将域名集合相同的证书视为续期,仍受部分速率限制约束。 | ||
|
||
## ARI 续期 | ||
|
||
通过 ARI 完成续期的特有优势就是不受任何速率限制约束。 支持 ARI 的客户端会定期向 Let’s Encrypt 确认您现有的证书是否需要续期, 达到续期的最佳时间窗口后就会自动申请新证书,并指明其替代的是哪一份旧证书。 只要新证书中至少有一个域名与旧证书相同,且旧证书尚未通过 ARI 续期,此次申请就不受任何速率限制。 | ||
|
||
## 非 ARI 续期 | ||
|
||
如果您的客户端或托管服务商尚未支持 ARI,但您申请的新证书域名集合与某一现有证书完全相同(不考虑大小写和顺序),那么此次申请也可以被视为续期。 | ||
例如,假设您为 `[www.example.com, example.com]` 申请了一份证书,那么您还可以再为 `[www.example.com, example.com]` 一次性申请四份证书,直到触发[相同域名集合证书申请限制](#相同域名集合证书申请限制)。 这四份新证书的申请都将被视为续期,不受[单个账户证书申请限制](#单个账户证书申请限制)和[单个注册域名证书申请限制](#单个注册域名证书申请限制)。 | ||
但与 ARI 续期不同,此类申请仍将受到[单个账户及域名验证失败次数限制](#单个账户及域名验证失败次数限制)和[相同域名集合证书申请限制](#相同域名集合证书申请限制)的约束。 | ||
|
||
# 触发速率限制后如何重试 | ||
|
||
触发速率限制后的错误提示信息均遵循相同的格式, 例如: | ||
|
||
``` | ||
too many new registrations (10) from this IP address in the last 3h0m0s, | ||
retry after 1970-01-01 00:18:15 UTC. | ||
``` | ||
|
||
在给定的日期和时间之后即可再次执行相同的操作。 如果您的请求超过了不止一项速率限制,提示信息将始终显示最后解除的限制项。 | ||
|
||
## Retry-After 标头 | ||
|
||
超过速率限制的失败响应中均带有 `Retry-After` 标头,表示您的客户端应当等待多长时间后再重试。 | ||
|
||
您还可以在 [crt.sh](https://crt.sh/) 或 [Censys](https://search.censys.io/#) 中通过[证书透明化](https://www.certificate-transparency.org/)日志搜索您注册的域名已经获得了哪些证书。 | ||
|
||
# 申请豁免 | ||
|
||
如果您是需要集成 Let’s Encrypt 的大型托管服务提供商或机构,可以通过[速率限制表单](https://isrg.formstack.com/forms/rate_limit_adjustment_request)申请放宽限制。 处理申请需要数周的时间,因此填写此表单并不能为您提前解除已经触发的速率限制。 |