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

Updates in ZH-CN #1807

Merged
merged 1 commit into from
Dec 29, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 55 additions & 4 deletions content/zh-cn/docs/rate-limits.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: 速率限制
slug: rate-limits
date: 2018-01-04
lastmod: 2024-10-22
lastmod: 2024-12-17
show_lastmod: true
---

Expand All @@ -12,7 +12,7 @@ show_lastmod: true

# 速率限制的方式

我们采用[漏桶算法](https://en.wikipedia.org/wiki/Leaky_bucket#As_a_meter)对请求次数实行速率限制, 因此您可以自由选择调用策略, 既可以在不超过数量上限的前提下一次性发起大量请求,也可以分批次完成接口调用以避免触发速率限制。
我们采用[令牌桶算法](https://en.wikipedia.org/wiki/Token_bucket)限制请求速率, 因此您可以自由选择调用策略, 既可以在不超过数量上限的前提下一次性发起大量请求,也可以分批次完成接口调用以避免触发速率限制。

如果您不慎触发了速率限制,我们无法临时为您解除。 但不必担心,您的请求额度将随时间逐渐恢复,无需任何操作就能继续发起新的请求。 吊销现有证书**并不能**解除速率限制,因为我们签发证书所消耗的资源已经无法回收。 请参阅下文[触发速率限制后如何重试](#触发速率限制后如何重试)了解详情。

Expand Down Expand Up @@ -107,7 +107,7 @@ show_lastmod: true
</div>
<div class="boxed">

## 单个账户及域名验证失败次数限制
## 单个账户同一域名验证失败次数限制

证书申请中每个域名的有效性都需要验证, 所有域名均验证通过后证书才能签发。 验证失败意味着 Let’s Encrypt 成功发出了验证请求,但未得到任何能证明域名归属的信息。

Expand All @@ -128,6 +128,57 @@ show_lastmod: true
此限制**不**提供豁免途径。

</div>
<div class="boxed">

## 单个账户同一域名连续验证失败次数限制

与[单个账户同一域名验证失败次数限制](#单个账户同一域名验证失败次数限制)类似,但只针对连续验证失败的情况。 此限制旨在防止客户端陷入验证失败的无限循环中。

### 限制

每个账户下每个域名最多可连续验证失败 3600 次。 验证额度的恢复速率为每天可再验证一次,域名验证成功后限制随即解除。 超过限制后,该账户就无法再为此域名申请证书。 这种情况下,用户可以通过接口报错信息中的链接前往我们的自助服务页面手动恢复验证,并且可以额外为账户关联的最多 49999 个域名同时解除限制。

| 每日失败次数 | 触发限制所需的时间 |
| ------ | ------------------------------ |
| 1 | ∞(永远不会触发) |
| 2 | 3600 天(9.86 年) |
| 5 | 900 天(2.46 年) |
| 10 | 400 天(1.10 年) |
| 15 | 257 天(8.45 个月) |
| 20 | 189 天(6.22 个月) |
| 30 | 124 天(4.08 个月) |
| 40 | 92 天(3.03 个月) |
| 120 | 30 天 |

### 常见原因

排查问题前建议先将客户端配置改为使用[测试环境](/docs/staging-environment), 其速率限制会[宽松很多](/docs/staging-environment/#rate-limits),可以避免定位及解决问题的过程中消耗生产环境的请求额度。

- `HTTP-01` 和 `TLS-ALPN-01` 验证失败的原因通常是网络或防火墙配置导致 Let's Encrypt 无法与您的服务器建立连接。

- `DNS-01` 验证失败则一般是由于配置过程中遗漏了步骤或输入的内容有误。 这种验证方式往往需要您先在主 DNS 域中创建 CNAME 记录,以便客户端在验证过程中进一步设置其他 DNS 记录。

### 豁免

此限制**不**提供豁免途径。

</div>

# 整体请求频率限制

除了[账户注册](#账户注册限制)和[证书签发](#证书签发限制)的限制,每个 IP 地址对各接口的调用频率也有上限。 此类限制由我们的负载均衡器实现,旨在避免 ACME 接口因部分客户端的频繁调用而超负荷运转。

| 接口 | 单 IP 每秒请求上限 | 突发容量 |
| ------------------ | ----------- | ---- |
| /acme/new-nonce | 20 | 10 |
| /acme/new-account | 5 | 15 |
| /acme/new-order | 300 | 200 |
| /acme/revoke-cert | 10 | 100 |
| /acme/renewal-info | 1000 | 100 |
| /acme/\* | 250 | 125 |
| /directory | 40 | 无 |

超过以上限制的请求将收到代码为 `503 Service Unavailable` 的 HTTP 响应, 响应中包含 `Retry-After` 标头。

# 证书续期的例外条件

Expand All @@ -141,7 +192,7 @@ Let's Encrypt 有两种方式认定证书申请是否属于续期:推荐的方

如果您的客户端或托管服务商尚未支持 ARI,但您申请的新证书域名集合与某一现有证书完全相同(不考虑大小写和顺序),那么此次申请也可以被视为续期。
例如,假设您为 `[www.example.com, example.com]` 申请了一份证书,那么您还可以再为 `[www.example.com, example.com]` 一次性申请四份证书,直到触发[相同域名集合证书申请限制](#相同域名集合证书申请限制)。 这四份新证书的申请都将被视为续期,不受[单个账户证书申请限制](#单个账户证书申请限制)和[单个注册域名证书申请限制](#单个注册域名证书申请限制)。
但与 ARI 续期不同,此类申请仍将受到[单个账户及域名验证失败次数限制](#单个账户及域名验证失败次数限制)和[相同域名集合证书申请限制](#相同域名集合证书申请限制)的约束。
但与 ARI 续期不同,此类申请仍将受到[单个账户同一域名验证失败次数限制](#单个账户同一域名验证失败次数限制)和[相同域名集合证书申请限制](#相同域名集合证书申请限制)的约束。

# 触发速率限制后如何重试

Expand Down
Loading