diff --git a/doc/Linux生产流程测试记录.md b/doc/Linux生产流程测试记录.md index 19e05ca..c9d5f95 100644 --- a/doc/Linux生产流程测试记录.md +++ b/doc/Linux生产流程测试记录.md @@ -3089,4 +3089,27 @@ SQLite 新测试程序 SHA-256:4c81656fae63a2eebad999d58e6a79e63e6f441810e02ce - [!] 当前打开 `https://web.cdis.cn/` 显示登录页,当前浏览器没有有效 Smail 管理会话;历史“页面可用”记录不作为当前授权凭据证据。 - [ ] 真实 SMTP 投递、收件箱到达、验证码、本机重置、新密码登录、第二台正式 SSL 推送与回滚仍待完成。 -本节仅记录当前实测证据,不宣称整体 Linux 项目已经上线通过;Windows 环境不在本轮范围。 \ No newline at end of file +本节仅记录当前实测证据,不宣称整体 Linux 项目已经上线通过;Windows 环境不在本轮范围。 +## 2026年10月5日 Linux整改复核记录 + +### 本轮验证结果 + +- [✓] 提交 `0788b6e` 已推送,Linux CLI 敏感输入改为交互式终端隐藏输入,拒绝命令行参数和管道输入。 +- [✓] `go test -count=1 ./...`:后端全部通过。 +- [✓] `go vet ./...`:通过。 +- [✓] `npm.cmd test -- --run`:338 项通过,0 失败、0 跳过、0 todo。 +- [✓] `npm.cmd run build`:Vite 生产构建通过。 +- [✓] Linux amd64 `scert`、`scert-admin` 构建通过,CLI 测试编译通过。 + +### 双机任务状态 + +- [✓] 第一台 `8.137.23.95` 的现有服务边界、配置校验和候选部署证据继续保留;本轮未用本地构建结果替代实机验收。 +- [✓] 第二台 `45.136.13.241` 无本项目部署包、解包目录、运行实例或专用监听;既有业务证书、PMail、共享 MySQL、现有 Nginx 配置和受保护 SSL 恢复锁未修改。 +- [~] 第一台待交互式录入 SMTP 敏感凭据;录入后必须重新执行配置校验和真实通知投递。 +- [ ] 第一台验证码、本机受保护重置、新密码登录和旧会话失效。 +- [ ] 第二台正式 SSL 推送、`nginx -t`、reload、受控失败回滚、恢复指纹和幂等重试。 +- [!] Linux 总体生产验收未通过。 + +### 验收边界 + +本轮结果只证明代码回归、构建和第二台清理状态;不证明第一台 SMTP 认证、真实邮件到达、验证码、密码重置、第二台 SSL 推送回滚或公网最终验收。敏感值未写入本记录。 \ No newline at end of file diff --git a/doc/Scert整改任务执行清单.md b/doc/Scert整改任务执行清单.md index 0f73127..aeaaf4d 100644 --- a/doc/Scert整改任务执行清单.md +++ b/doc/Scert整改任务执行清单.md @@ -2958,4 +2958,33 @@ P0-05 从 `[!]` 调整为 `[~]`,并未标记完成;P0-04 剩余门禁和全 - [~] 改为 Linux 真实终端隐藏输入,拒绝命令行敏感值与管道输入,失败或取消时恢复终端设置。 - [ ] 增加 Linux 伪终端测试,验证无回显、恢复和拒绝边界;不使用真实凭据。 - [ ] 补全配置流程:保存引用并不自动启用 SMTP,也不代表运行进程已重载配置;须另外校验、启用、受控重启并真实投递。 -- [!] 本轮不依赖 Smail 会话修复上述缺陷;真实邮件、密码重置与第二台正式推送仍未验收。不改共享业务、恢复锁或第二台部署状态。 \ No newline at end of file +- [!] 本轮不依赖 Smail 会话修复上述缺陷;真实邮件、密码重置与第二台正式推送仍未验收。不改共享业务、恢复锁或第二台部署状态。 +## 2026年10月5日 Linux整改执行进度 + +### 任务状态 + +- [✓] C1:Linux 敏感输入整改已提交推送,提交 `0788b6e`;拒绝命令行敏感值和管道输入,终端回显关闭后在退出路径恢复。 +- [✓] C2:后端全量测试和 `go vet ./...` 通过。 +- [✓] C3:前端 338 项测试全部通过,生产构建通过。 +- [✓] C4:Linux amd64 `scert`、`scert-admin` 构建及 CLI 测试编译通过。 +- [✓] C5:第二台 `45.136.13.241` 保持清理状态,不上传、不安装本项目,受保护 SSL 恢复锁保留。 +- [~] T3-凭据-1:第一台 root 受控终端交互录入 SMTP 敏感凭据;不读取、不回显、不写入文件或日志。 +- [ ] T3-验证-1:第一台 `config validate`、真实通知投递、收件箱到达核验。 +- [ ] T3-重置-1:本机 `Scert-admin` 验证码、重置、新密码登录及旧会话失效。 +- [ ] T4-推送-1:通过正式 Web/API 向第二台推送 SSL,核验目标权限、摘要和 `nginx -t`。 +- [ ] T4-推送-2:注入可控失败,验证停止策略、旧证书回滚、恢复指纹和同幂等键重试。 +- [ ] T5-初始化-1:SQLite、MySQL、PostgreSQL 清库后完成首次 Web 初始化和重启持久化。 +- [ ] T5-公网-1:完成 DNS/ACME 正负向、公共 HTTPS/SNI、证书历史恢复及清缓存后的入口复审。 +- [!] T5-总体验收:在上述证据全部齐备前保持未通过。 + +### 当前执行顺序 + +1. `[~]` 由有权限人员在第一台 root 受控终端交互录入 SMTP 敏感凭据。 +2. `[ ]` 只读复核凭据引用和 `config validate`,发送真实系统通知并确认收件箱到达。 +3. `[ ]` 执行本机受保护验证码、重置、新密码登录和旧会话失效闭环。 +4. `[ ]` 取得有效管理会话后执行第二台 SSL 推送、reload、失败回滚、恢复和幂等矩阵。 +5. `[ ]` 完成三数据库首次 Web、DNS/ACME 和最终公共 HTTPS/SNI 复审。 + +### 约束 + +敏感凭据不进入聊天、参数、环境变量、日志、文档或仓库;不通过数据库直改、公网重置、`-k` 或未核验主机指纹绕过门禁。Windows 环境不纳入本轮。 \ No newline at end of file diff --git a/doc/Scert整改合并优化清单.md b/doc/Scert整改合并优化清单.md index 1f8d2cd..cc89c65 100644 --- a/doc/Scert整改合并优化清单.md +++ b/doc/Scert整改合并优化清单.md @@ -3590,4 +3590,27 @@ Smail 已从历史 502 状态恢复,系统通知授权页面可用;当前唯 2. 录入后只读执行 `config validate` 和凭据引用核对,再发送真实系统通知并确认收件箱到达。 3. SMTP 真实投递通过后,继续本机验证码、受保护重置、新密码登录和旧会话失效验证;取得有效管理会话后再执行第二台 SSL 推送及回滚。 -当前结论:第二台清理目标已完成;整体 Linux 上线门禁仍未关闭,直接业务阻塞为第一台 SMTP 敏感凭据和有效管理会话。 \ No newline at end of file +当前结论:第二台清理目标已完成;整体 Linux 上线门禁仍未关闭,直接业务阻塞为第一台 SMTP 敏感凭据和有效管理会话。 +## 2026年10月5日 Linux整改推进与上线任务清单 + +### 本轮已完成 + +- [✓] 提交并推送 `0788b6e`《完成Linux敏感输入安全整改》:SMTP 敏感值不得通过命令行参数传入,Linux 仅允许交互式终端隐藏输入,拒绝管道输入,并在退出时恢复终端状态。 +- [✓] 后端 `go test -count=1 ./...` 通过,`go vet ./...` 通过。 +- [✓] 前端 `npm.cmd test -- --run` 通过:338 项通过、0 失败、0 跳过、0 todo。 +- [✓] 前端 `npm.cmd run build` 生产构建通过。 +- [✓] Linux amd64 `scert` 与 `scert-admin` 交叉构建通过,CLI 测试编译通过。 +- [✓] 第二台 `45.136.13.241` 继续保持无本项目部署包、无本项目实例和无专用监听;受保护 SSL 恢复锁未删除或改写。 + +### 当前上线任务状态 + +- [~] 第一台 `8.137.23.95`:待有权限人员在 root 受控终端交互录入 SMTP 敏感凭据;不得通过聊天、参数、环境变量、日志、文档或仓库传递。 +- [ ] 第一台:只读执行 `config validate`,发送真实系统通知并确认收件箱到达。 +- [ ] 第一台:完成验证码、本机受保护重置、新密码登录和旧会话失效验证。 +- [ ] 第二台:取得有效管理会话后执行正式 SSL 推送、`nginx -t`、reload、受控失败回滚、恢复指纹和幂等重试。 +- [ ] 完成三数据库清库后的首次 Web 初始化、重启登录持久化、DNS/ACME 正负向和最终公共 HTTPS/SNI 复审。 +- [!] 以上实机证据未齐备前,Linux 总体生产上线门禁保持未通过;本地测试、构建、TLS 握手、页面可访问和 `/readyz` 均不替代生产验收。 + +### 当前结论 + +代码整改和本地回归已完成并推送。直接业务门禁仍是第一台 SMTP 敏感凭据、真实通知及受保护管理会话;第二台只承担 SSL 推送测试,不安装本项目。Windows 环境不纳入本轮。 \ No newline at end of file