更新证书恢复整改清单与接口文档

标记证书历史版本恢复前后端开发、前端测试和生产构建进度,补充恢复接口的 history_id、202、幂等、权限和本地恢复边界说明。
This commit is contained in:
xuans 2026-10-03 02:34:12 +08:00
parent b75773b85e
commit 79e0e42bf9
2 changed files with 18 additions and 0 deletions

View File

@ -82,6 +82,15 @@
前端使用独立 RenewalAction.js 管理提交状态和幂等键,复用任务详情跟踪结果;禁止重复点击时并发提交,不能仅凭受理响应显示续期完成。 前端使用独立 RenewalAction.js 管理提交状态和幂等键,复用任务详情跟踪结果;禁止重复点击时并发提交,不能仅凭受理响应显示续期完成。
## 证书历史版本恢复
- `GET /api/v1/domains/:id/certificate/versions` 返回当前证书及可恢复的本地历史版本;前端使用 `history_id` 作为稳定恢复标识,不使用列表序号或展示版本号。
- `POST /api/v1/domains/:id/certificate/versions/:history_id/restore` 不接收证书内容,使用 `Idempotency-Key` 提交恢复任务;成功返回 `202 Accepted`、`accepted=true`、`task` 和 `Location: /api/v1/tasks/任务编号`。
- 恢复任务必须通过域名可见性、证书管理、部署执行和私钥读取权限复核;当前证书、过期版本、未生效版本、域名不匹配或证书类型不匹配不得恢复。
- 同域名存在活动恢复任务时返回冲突及原任务信息;相同幂等键重放时返回原任务,不重复执行。前端必须继续查询任务详情,不能凭 202 或 200 直接显示恢复完成。
- 恢复范围仅为 Scert 本地托管证书历史;任务完成不代表远端服务器已经部署新证书,远端部署必须使用独立部署任务并单独确认。
- 响应及错误信息不得暴露私钥内容、私钥路径、证书存储本地路径或服务器路径。
## 数据模型 ## 数据模型
| 模型 | 字段 | | 模型 | 字段 |

View File

@ -1,5 +1,14 @@
# Scert 整改、合并与优化清单 # Scert 整改、合并与优化清单
## 2026年10月2日 当前开发进度:证书历史版本恢复前端闭环完成
- [x] P1-02:后端已实现本地证书历史版本读取、版本校验、恢复任务持久化、幂等提交、活动任务冲突、失败收敛及权限复核;恢复仅更新 Scert 本地托管证书,不宣称远端部署完成。
- [x] P2-03 配套:前端已接入历史版本列表、稳定 `history_id` 恢复、二次确认、`Idempotency-Key`、202 任务受理和任务详情跟踪;当前版本不可重复恢复。
- [x] 前端补充历史版本弹窗布局及移动端适配;证书恢复专项测试、前端全量测试 275 项和 Vite 生产构建通过;修复恢复成功后任务详情入口调用错误。
- [x] 代码已提交并推送:`b75773b 完善证书历史版本恢复页面与测试`。
- [~] 接下来执行 Linux 后端全量回归、候选包构建、双机正式部署及浏览器生产验收;本批尚未据此宣布生产验收通过。
- [!] 既有生产门禁仍保留:第一台证书 SAN、重启早期 502、Smail 系统账户发信、密码重置、三数据库首次 Web、DNS/ACME 负向矩阵及双机实机证据。
## 2026年10月2日21:40 当前开发进度:历史版本与恢复 ## 2026年10月2日21:40 当前开发进度:历史版本与恢复
- [~] P1-02:已确认真实存储仍不支持历史恢复,开始补齐本地历史归档读取、恢复校验与失败回滚,不以模拟接口测试代替实现。 - [~] P1-02:已确认真实存储仍不支持历史恢复,开始补齐本地历史归档读取、恢复校验与失败回滚,不以模拟接口测试代替实现。