9 Commits

Author SHA1 Message Date
8ff3bf27ab feat: 支持多域名证书申请(SAN证书)
- 在 QUICKSTART.md 中添加多域名申请的详细说明和示例
- 修复多域名申请时只为所有域名创建 webroot 路由的问题
- 支持使用 --additional-domains 参数申请包含多个域名的证书
2026-01-03 22:13:58 +08:00
db30f3d7f1 fix: 添加自动创建/更新 webroot 路由功能,修复证书申请时的路由匹配问题
- 新增 ensure_webroot_route 方法,自动创建或更新 APISIX webroot 路由
- 支持为指定域名创建带 host 字段的路由,确保正确匹配
- 在申请证书前自动确保 webroot 路由存在并配置正确
- 设置路由优先级为 99999,确保优先匹配 /.well-known/acme-challenge/* 路径
- 使用 serverless-pre-function 插件从 /var/www/certbot 目录读取验证文件
- 修复了证书申请时因路由匹配问题导致的 404 错误
2026-01-03 16:53:31 +08:00
9d3a4f0f71 fix: 修复速率限制错误仍会重试的问题
问题:
- 遇到速率限制时抛出 RateLimitError 异常
- 但被外层的 except Exception 捕获,继续重试
- 导致持续触发速率限制,无法停止

修复:
- 在异常处理中优先检查 RateLimitError
- 如果是速率限制错误,直接重新抛出,不进行重试
- 让 route_watcher 正确捕获并记录到限制列表

效果:
- 遇到速率限制时立即停止重试
- 正确记录到 rate_limited_domains
- 后续检查自动跳过,直到限制解除
2026-01-01 20:26:01 +00:00
f34c2e28d1 feat: 添加速率限制处理机制,优化代码质量
主要改进:

1. 速率限制处理:
   - 添加 RateLimitError 异常类,用于标识速率限制错误
   - 在 ssl_manager.py 中检测 Let's Encrypt 速率限制错误
   - 解析重试时间,提供详细的错误提示
   - 在 route_watcher.py 中记录被限制的域名和重试时间
   - 自动跳过限制期间的域名,避免持续触发限制
   - 限制解除后自动恢复申请

2. 代码优化:
   - 修复重复导入 sys 的问题
   - 修复 API 调用未使用 session 连接复用的问题
   - 移除未使用的 _get_apisix_headers 方法
   - 将 RateLimitError 导入移到文件顶部

优势:
- 避免持续触发速率限制,形成死循环
- 自动等待限制解除,无需手动干预
- 提升代码质量和可维护性
- 充分利用 HTTP 连接复用,提升性能
2026-01-01 20:24:36 +00:00
5d60b822e2 ssl证书设置为生产模式 2026-01-01 20:03:29 +00:00
d81d3362af perf: 优化 SSL 管理器性能,使用 HTTP 连接复用
主要优化:
- HTTP 连接复用:使用 requests.Session() 复用连接,减少连接开销
  - 所有 API 调用现在使用同一个 session
  - 减少 TCP 连接建立和 TLS 握手开销

- 代码清理:
  - 移除未使用的导入(base64, timedelta)
  - 移除重复的 headers 参数(已在 session 中设置)

- 性能提升:
  - 减少每次 API 调用的开销
  - 特别是在频繁调用时(如证书续期、批量操作)效果明显

这些优化提升了 SSL 管理器的整体性能,特别是在处理多个证书操作时。
2026-01-01 20:00:01 +00:00
3a37cc6e14 删除ssl_manager冗余文件 2026-01-01 19:28:19 +00:00
5bd9e95e15 ssl_manager增加支持额外域名 2026-01-01 18:28:10 +00:00
7d885471c0 增加ssl_manager功能实现创建路由时自动申请并续期ssl免费证书,测试成功 2026-01-01 15:21:37 +00:00