我们如何减少僵尸客户端的影响

主要观点:每晚午夜左右,大量僵尸(废弃或配置错误的互联网服务器及 ACME 客户端)会醒来请求数字证书,因证书最多 90 天有效期需更换,但其请求注定失败,会消耗认证机构资源。软件不会因反复失败而放弃,Let's Encrypt 大部分证书更新由自动化软件执行,易导致遗忘客户端和设备持续请求更新失败,如设备域名变更等情况。Let's Encrypt 已实施多种速率限制以管理资源使用,针对僵尸客户端问题采用“暂停”方法,手动暂停约 21000 个最常失败的账户-主机名对,之后开始自动暂停,还设有自服务解除暂停功能,实施这些措施后减少了基础设施负载,未对用户造成明显影响。

关键信息

  • 僵尸客户端:被遗忘或配置错误的服务器及客户端,持续请求过期证书。
  • 速率限制:Let's Encrypt 有八种速率限制,旨在最大化资源利用,避免浪费,设计时遵循非惩罚性原则且倾向宽松。
  • 僵尸相关速率限制:采用“暂停”账户-主机名对的方法,仅暂停反复失败的请求,避免影响其他正常请求,设置较高阈值,避免误判正常用户。
  • 自服务解除暂停:账户-主机名对被暂停后,新请求会被拒绝,提供自定义链接可立即解除暂停,目前只有约 3%的受影响账户使用该功能。

重要细节

  • 证书有效期为 90 天,僵尸客户端软件不知证书过期需更换。
  • 速率限制机制如 Redis 实例故障时会倾向允许更多证书发放。
  • 自动暂停依据同一账户对同一域名的连续授权失败次数,成功验证会重置计数。
  • 主流客户端默认配置用户一般不会遇到新的速率限制。
  • 自服务解除暂停界面及相关操作,大型集成商可一次解除 50000 个域名的暂停。
  • 实施措施后减少了证书订单失败,收到零投诉,约 3200 人手动解除暂停。
阅读 11
0 条评论