docs: 更新 .cocoon-plan.md — ACME 配置集成 + 自动续期已完成
Some checks failed
CI / build (push) Failing after 23s
Some checks failed
CI / build (push) Failing after 23s
This commit is contained in:
parent
f38effff49
commit
c970c7f73a
@ -51,7 +51,7 @@
|
|||||||
- [x] **配置热重载校验** — 新配置语法校验失败时拒绝重载,避免把服务搞坏
|
- [x] **配置热重载校验** — 新配置语法校验失败时拒绝重载,避免把服务搞坏
|
||||||
- [x] **内存响应缓存** — 基于 LRU + TTL,文件不大时直接缓存到内存,避免重复磁盘 I/O
|
- [x] **内存响应缓存** — 基于 LRU + TTL,文件不大时直接缓存到内存,避免重复磁盘 I/O
|
||||||
- [x] **管理 Dashboard** — 内置 `/_status` 页面,SSE 实时推送指标,像 HAProxy stats 那种
|
- [x] **管理 Dashboard** — 内置 `/_status` 页面,SSE 实时推送指标,像 HAProxy stats 那种
|
||||||
- [x] **ACME / Let's Encrypt 自动证书** — 客户端骨架完成(目录发现、nonce、账户、订单、授权、CSR、证书下载、thumbprint),OpenSSL 3.0 零警告;服务器端 HTTP-01 挑战响应路由已完成(`/.well-known/acme-challenge/` 返回 keyAuthorization);配置集成与自动续期待完成
|
- [x] **ACME / Let's Encrypt 自动证书** — 客户端骨架完成(目录发现、nonce、账户、订单、授权、CSR、证书下载、thumbprint),OpenSSL 3.0 零警告;服务器端 HTTP-01 挑战响应路由已完成(`/.well-known/acme-challenge/` 返回 keyAuthorization);配置集成与自动续期后台协程已完成(2026-06-16)
|
||||||
- [ ] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽
|
- [ ] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽
|
||||||
- [ ] **YAML / TOML 配置格式** — 配置验证时更友好
|
- [ ] **YAML / TOML 配置格式** — 配置验证时更友好
|
||||||
- [x] **systemd 服务文件** — 一键安装成系统服务,支持 SIGHUP 热重载、安全加固、自动恢复
|
- [x] **systemd 服务文件** — 一键安装成系统服务,支持 SIGHUP 热重载、安全加固、自动恢复
|
||||||
@ -67,13 +67,13 @@
|
|||||||
|
|
||||||
## 当前状态
|
## 当前状态
|
||||||
|
|
||||||
- **编译状态**:零警告,全部通过(2026-06-16 09:17 验证)
|
- **编译状态**:零警告,全部通过(2026-06-16 12:17 验证)
|
||||||
- **单元测试**:474 个全部通过 ✓(1 个 Ignored,为预期行为)
|
- **单元测试**:480 个全部通过 ✓(1 个 Ignored,为预期行为)
|
||||||
- **集成测试**:111 项通过(4 项反向代理环境相关失败,非项目问题)
|
- **集成测试**:111 项通过(4 项反向代理环境相关失败,非项目问题)
|
||||||
- **代码覆盖率**:核心模块覆盖完整,Phase 4 模块覆盖良好
|
- **代码覆盖率**:核心模块覆盖完整,Phase 4 模块覆盖良好
|
||||||
- **文档状态**:README 完整,API 文档齐全,.cocoon-plan.md 已更新
|
- **文档状态**:README 完整,API 文档齐全,.cocoon-plan.md 已更新
|
||||||
- **项目阶段**:Phase 1~4 全部完成,Phase 5 进行中(ACME 服务器端 HTTP-01 挑战响应已完成)
|
- **项目阶段**:Phase 1~4 全部完成,Phase 5 进行中(ACME 配置集成 + 自动续期已完成)
|
||||||
- **代码规模**:30,000+ 行 C 代码(不含 coco 子模块),474 单元测试 + 111 集成测试
|
- **代码规模**:30,000+ 行 C 代码(不含 coco 子模块),480 单元测试 + 111 集成测试
|
||||||
|
|
||||||
## 待办池(Phase 5 — 自然扩展)
|
## 待办池(Phase 5 — 自然扩展)
|
||||||
|
|
||||||
@ -227,7 +227,25 @@
|
|||||||
- 提交已推送到 origin main 和 rua main(`a198b08`)
|
- 提交已推送到 origin main 和 rua main(`a198b08`)
|
||||||
- 项目状态:Phase 5 进行中,ACME 服务器端 HTTP-01 挑战响应已完成,下阶段目标:ACME 配置集成 + 自动续期后台任务
|
- 项目状态:Phase 5 进行中,ACME 服务器端 HTTP-01 挑战响应已完成,下阶段目标:ACME 配置集成 + 自动续期后台任务
|
||||||
|
|
||||||
+ 2026-06-16 06:17: **Phase 5 — systemd 服务文件**
|
+ 2026-06-16 12:17: **Phase 5 — ACME 配置集成 + 自动续期后台协程**
|
||||||
|
- `cocoon_config_t` 扩展:新增 ACME 配置字段(enabled, directory_url, email, domains[8],
|
||||||
|
cert_path, key_path, renew_days),支持配置文件 JSON 解析和命令行覆盖
|
||||||
|
- `config.c`: 新增 ACME 配置块解析、字段校验(域名数量/邮箱格式/路径非空)、
|
||||||
|
`config_merge` 支持 ACME 字段合并
|
||||||
|
- `main.c`: 新增 `--acme` 命令行开关,用于启用/覆盖配置文件中的 ACME 设置
|
||||||
|
- `acme.c`: 实现 `acme_save_certificate`(自动创建目录、原子写入 PEM 证书+私钥)、
|
||||||
|
`acme_cert_days_until_expiry`(解析 X.509 ASN1_TIME,支持 UTCTime/GeneralizedTime)
|
||||||
|
- `server.c`: `server_start` 启动 ACME 自动续期后台协程,检查周期 24h,
|
||||||
|
在证书到期前 `renew_days` 天自动触发重新签发并持久化新证书
|
||||||
|
- 新增 `tests/unit/test_acme_config.c`:6 项单元测试
|
||||||
|
- 覆盖 ACME 配置 JSON 解析、校验(邮箱/域名/路径)、默认值、
|
||||||
|
证书过期天数检查(UTCTime 13位/GeneralizedTime 15位)、证书保存、配置合并
|
||||||
|
- 修复 `test_config.c` 中 5 处 `config_merge` 调用,匹配新增 `has_acme_enabled` 参数
|
||||||
|
- 编译验证:零警告,全部通过
|
||||||
|
- 单元测试:480 个全部通过 ✓(474 原有 + 6 新增 ACME 配置测试)
|
||||||
|
- 集成测试:111 项通过(4 项反向代理环境相关失败,非项目问题)
|
||||||
|
- 提交已推送到 origin main 和 rua main(`f38efff`)
|
||||||
|
- 项目状态:Phase 5 进行中,ACME 配置集成 + 自动续期已完成,下阶段目标:带宽限速 / 流量整形
|
||||||
- 新增 `cocoon.service`:完整的 systemd 服务单元配置
|
- 新增 `cocoon.service`:完整的 systemd 服务单元配置
|
||||||
- Type=simple,默认启动 `/usr/local/bin/cocoon -c /etc/cocoon/cocoon.json`
|
- Type=simple,默认启动 `/usr/local/bin/cocoon -c /etc/cocoon/cocoon.json`
|
||||||
- ExecReload:发送 SIGHUP 触发配置热重载
|
- ExecReload:发送 SIGHUP 触发配置热重载
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user