let’s encrypt 对单域名每周限申5次,宝塔不提示限制而报“已签发太多证书”;zerossl可绕过但有兼容性问题;dns验证或litessl是更稳的国内替代方案。

Let’s Encrypt 对单个域名的证书申请有严格频率限制(如每周最多 5 次),宝塔面板默认不提示该限制,而是卡在“正在验证”或直接报错 too many certificates already issued —— 这不是你操作错了,是 ACME 协议层的硬性约束,切 ZeroSSL 或改 DNS 验证能绕过,但得清楚各自代价。
为什么宝塔申请 Let's Encrypt 总提示“已签发太多证书”
Let’s Encrypt 的速率限制按「注册域」和「子域组合」分别计算。比如你反复申请 example.com、www.example.com、blog.example.com,哪怕只差一个子域,也算不同证书;若 7 天内对同一组合申请超 5 次,就会触发 urn:acme:error:rateLimited 错误。宝塔界面只显示“申请失败”,不会告诉你具体是哪条限制被触碰。
- 查当前使用量:登录宝塔后进入
/www/server/panel/vhost/cert/目录,执行ls -l | grep example.com,看历史证书文件名里的日期戳是否密集集中在最近一周 - 确认是否用了通配符:申请
*.example.com和example.com是两个独立计数项,别以为泛域名能“一劳永逸” - 注意自动续签干扰:宝塔默认开启自动续签,如果某次续签失败(比如 DNS 解析延迟),它可能在后台不断重试,悄悄耗尽本周额度
切换 ZeroSSL 能立刻绕过上限吗
能,但仅限新证书申请——ZeroSSL 不共享 Let’s Encrypt 的速率池,它的免费证书也按周限制,但阈值更高(目前为每周 10 张),且不限制泛域名申请次数。不过要注意:ZeroSSL 的 ACME 接口域名是 acme.zerossl.com,国内访问延迟比 Let’s Encrypt 低,但它的根证书在部分老旧 Android 或 Windows XP 系统上不被信任。
- 操作路径:进「网站」→ 目标站点 → 「SSL」→ 「免费申请」→ 下拉选择「ZeroSSL」→ 点「申请」
- 不需改 DNS 或关强制 HTTPS,ZeroSSL 默认走 HTTP-01 验证,和 Let’s Encrypt 行为一致
- 证书有效期也是 90 天,自动续签逻辑相同,别误以为“换一家就不用管了”
用 DNS 验证手动申请,彻底避开 HTTP-01 限制
DNS 验证不依赖服务器 80 端口可达性,也不触发 Let’s Encrypt 的 HTTP-01 频率限制(它走的是 DNS-01 类型),更适合高频调试或子域多的场景。但必须确保你能写入 DNS 记录——阿里云、Cloudflare、DNSPod 等主流服务商都支持 API 自动写入。
- AccessKey 务必用 RAM 子账号:主账号 AK 调用阿里云 DNS API 会直接被风控拦截,报错
There is a risk of leakage of this AccessKey - NS 服务器不能锁死:有些注册商(如阿里云)把 NS 改成自家服务器后,反而导致宝塔调用 DNS API 失败;可临时切到
ns1.dnspod.net测试 - 申请前清缓存:删掉
/www/server/panel/config/letsencrypt.json和/www/wwwroot/.well-known/acme-challenge/(若存在),避免旧验证残留干扰
LiteSSL 是更稳妥的国内替代方案
如果你的服务器在国内,且对泛域名、自动续签稳定性要求高,LiteSSL 比 ZeroSSL 更合适:所有验证节点都在境内,DNS 或 HTTP 验证都走本地链路,基本无超时;它对 *.example.com 支持更稳,且在低配 VPS 上自动续签成功率更高。缺点是品牌认知度低,部分用户心理上不信任“没听过”的 CA。
真正容易被忽略的是:无论换哪家 CA,只要还在用宝塔内置申请器,它底层仍调用 acme.sh,而这个脚本的缓存机制(尤其是 letsencrypt_v2.json)一旦损坏,会导致看似换了服务商,实际仍复用旧策略。建议每次切换前先备份并删除该文件。











