|
|
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 |
|
|
|
3478db383e
|
feat: 限制解除后增加15分钟缓冲期再重试
问题:
- 限制解除后立即重试,可能再次触发速率限制
- 没有缓冲时间,容易导致连续失败
修复:
- 限制解除后,增加15分钟缓冲期
- 缓冲期内不申请证书,避免立即重试
- 优化检查间隔计算,在缓冲期结束后才重试
实现:
- should_request_cert: 检查缓冲期,缓冲期内返回 False
- run: 计算重试时间时加上15分钟缓冲期
- 实际重试时间 = 限制解除时间 + 15分钟
优势:
- 避免立即重试再次触发限制
- 给 Let's Encrypt 足够的恢复时间
- 提高证书申请成功率
|
2026-01-01 20:31:54 +00:00 |
|
|
|
a5ccb1f951
|
refactor: 优化路由监听器代码,减少重复和冗余
主要优化:
1. 移除未使用的代码:
- 删除未使用的 import json
- 删除未使用的 _get_apisix_headers() 方法(headers 已在 session 中设置)
2. 减少代码重复:
- 提取 _handle_cert_request() 公共方法
- 统一单个和多个域名的证书申请处理逻辑
- 减少约 40 行重复代码
3. 代码简化:
- 简化 process_new_domains() 中的逻辑
- 提高代码可读性和可维护性
优势:
- 更简洁:移除所有冗余代码
- 更易维护:减少重复,统一处理逻辑
- 更符合 DRY 原则:单一职责,代码复用
|
2026-01-01 20:27:44 +00: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 |
|
|
|
b30fafd34f
|
perf: 优化路由监听服务性能,减少 API 调用
主要优化:
- 性能优化:只调用一次 get_all_ssls() API,在内存中构建域名集合进行快速查找
- 之前:N 个域名 = N 次 API 调用
- 现在:N 个域名 = 1 次 API 调用
- 性能提升:从 O(N×M) 降低到 O(N+M)
- HTTP 连接复用:使用 requests.Session() 复用连接,减少连接开销
- 代码重构:
- 提取 _fetch_apisix_data() 公共方法,减少重复代码
- 提取 _is_valid_domain() 方法,改进 IP 地址检测(支持 IPv4/IPv6)
- 提取 _build_ssl_domains_set() 方法,构建 SSL 域名集合
- IP 地址检测改进:使用 ipaddress 模块,更准确地检测 IPv4 和 IPv6
这些优化显著提升了服务性能,特别是在处理大量路由和域名时。
|
2026-01-01 19:58:16 +00:00 |
|
|
|
7c464126a9
|
fix: 修复 f-string 语法错误
- 修复 f-string 中表达式解析错误
- 将计算移到 f-string 外面,避免语法错误
- 修复前: {len(additional_domains)} + 1} (语法错误)
- 修复后: total_domains = len(additional_domains) + 1; {total_domains}
|
2026-01-01 19:40:38 +00:00 |
|
|
|
cd346ec94b
|
feat: 优化证书申请逻辑,同一路由的多个域名合并到一个证书
- 按路由处理域名,而不是按域名处理
- 同一路由中的多个域名合并到一个证书申请(使用 SAN)
- 减少证书数量,简化管理
- 符合最佳实践:一个证书包含多个相关域名
优势:
- 减少证书数量(从 N 个减少到 1 个)
- 减少续期次数
- 降低 Let's Encrypt API 调用频率
- 简化证书管理
示例:
- 路由包含 jingrowtools.cn 和 www.jingrowtools.cn
- 现在会申请一个包含两个域名的证书(SAN)
- 而不是分别申请两个独立证书
|
2026-01-01 19:38:34 +00:00 |
|
|
|
cac12f50bd
|
chore: 从 git 跟踪中移除 __pycache__ 文件
- 移除已跟踪的 Python 缓存文件
- .gitignore 中已包含 __pycache__/ 规则,以后不会再跟踪这些文件
|
2026-01-01 19:33:47 +00:00 |
|
|
|
7198a1376b
|
refactor: 优化路由监听服务,移除已处理域名列表
- 移除 processed_domains 状态管理,改为直接检查 APISIX 实际 SSL 配置
- 简化代码逻辑,提高可靠性
- 修复 SSL 配置查找时的类型错误(key 字段是字符串而非字典)
- 添加路由状态检查,跳过禁用的路由(status=0)
优势:
- 更简单:无需维护状态文件
- 更准确:直接检查实际配置,避免状态不一致
- 更可靠:即使证书被删除,也能自动检测并重新申请
|
2026-01-01 19:32:58 +00:00 |
|
|
|
3a37cc6e14
|
删除ssl_manager冗余文件
|
2026-01-01 19:28:19 +00:00 |
|
|
|
2421089e68
|
添加了路由状态检查,跳过禁用路由
|
2026-01-01 18:43:06 +00:00 |
|
|
|
5bd9e95e15
|
ssl_manager增加支持额外域名
|
2026-01-01 18:28:10 +00:00 |
|
|
|
88f5127d9b
|
优化ssl自动化功能
|
2026-01-01 17:12:14 +00:00 |
|
|
|
7d885471c0
|
增加ssl_manager功能实现创建路由时自动申请并续期ssl免费证书,测试成功
|
2026-01-01 15:21:37 +00:00 |
|
|
|
8c8e8dc8e8
|
更新etcd docker镜像标签
|
2025-12-25 17:03:54 +00:00 |
|
|
|
a45b9e0902
|
初始提交
|
2025-06-16 13:40:33 +08:00 |
|