From 0abd816b05312165017abed3410aac83f6af62c8 Mon Sep 17 00:00:00 2001 From: xuans Date: Tue, 6 Oct 2026 10:32:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E7=AC=AC=E4=BA=8C=E5=8F=B0?= =?UTF-8?q?=E8=AF=81=E4=B9=A6=E7=AB=99=E7=82=B9=E9=94=99=E9=85=8D=E5=8F=8A?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=81=A2=E5=A4=8D=E5=9F=BA=E7=BA=BF=E7=BC=BA?= =?UTF-8?q?=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/Linux生产流程测试记录.md | 31 ++++++++++++++++++++++++++++ doc/Scert整改任务执行清单.md | 17 +++++++++++++++ doc/Scert整改合并优化清单.md | 11 ++++++++++ 3 files changed, 59 insertions(+) diff --git a/doc/Linux生产流程测试记录.md b/doc/Linux生产流程测试记录.md index 2afc65e..cd1e752 100644 --- a/doc/Linux生产流程测试记录.md +++ b/doc/Linux生产流程测试记录.md @@ -3381,3 +3381,34 @@ SQLite 新测试程序 SHA-256:4c81656fae63a2eebad999d58e6a79e63e6f441810e02ce ### 结论与剩余验收 认证恢复、当前新包核心文件一致性和超管右侧账号显示通过。现场已经升级,因此本轮未上传、安装或重启;不补写未观察到的安装和备份过程。此前“新包未部署”“线上仅旧前端”“SSH 阻塞”以本节当前证据为准。邮件真实收件、受保护重置、第二台正式 SSL 推送回滚及三库和 DNS/ACME 全流程仍未验收,整体生产门禁保持未完成。 + +## 2026年10月6日10时35分 第二台目标 SNI 与恢复条件 + +### 站点与锁现场 + +- [✓] 第二台 /etc/nginx/conf.d/pmail.conf 的 TLS 站点为 xuans.vcer.cn,证书路径为 /ssl/vcer.cn/fullchain.crt,私钥路径为 /ssl/vcer.cn/vcer.cn.key;未配置 scert-multi-20260930.apmmk.cn 对应站点。 +- [✓] 通过已验证 SSH 会话,在服务器内运行 openssl s_client,连接127.0.0.1:443,设置目标 SNI、verify_hostname 和 verify_return_error;返回 hostname mismatch、verify code62。该结果为主机内路由诊断,不是公网正常 DNS 验收,未关闭 TLS 校验。 +- [✓] 第一台同目标域名已有独立站点及对应证书路径,前序同轮严格主机内 SNI 核验返回0;不能因此推导第二台恢复或双机部署成功。 +- [✓] 第二台 Nginx、MySQL、PMail 均 active。使用 find /ssl -maxdepth 4 -type d -name '*.scert-lock',apmmk 测试域名及 acceptance-0928.odacm.cn 的 single 目录各返回 cert.pem、key.pem、fullchain.pem 对应锁目录。 +- [✓] 更正上一节有限扫描结论:精确名称 .scert-lock 不匹配带文件名前缀的真实锁名;锁仍在,不能把漏检当作无锁或恢复完成。这些 SSL 事务锁不等于第二台安装了 Scert 服务或部署包。 + +### 正式只读管理流程与数据库证据 + +- [✓] 管理台通过受保护本机入口进入菜单2;未发验证码、未重置、未进入处置菜单。最近一条事务采样时间为2026-10-06 02:26:55 UTC,目标证书、私钥、证书链及对应临时文件和备份均不存在,三个锁存在且归属匹配。 +- [✓] 本次管理台 Result=success、ActiveState=inactive、SubState=dead;Scert.service、Scert-storage.socket 和 Nginx 均 active,覆盖此前凌晨管理台 failed 的历史状态描述。 +- [✓] 配置白名单确认应用数据库为 SQLite,路径 /scert/data/scert.db;MySQL 服务存在不代表应用当前使用 MySQL。随后连接使用 mode=ro,并开启 PRAGMA query_only=ON;仅输出事务编号、服务器编号、阶段、状态、目标域名以及指纹是否存在,不输出原始证据、锁令牌、私钥或密码。 + +| 待恢复事务 | 服务器 | 目标域名 | 旧指纹 | 新指纹 | +| --- | --- | --- | --- | --- | +| 20261003-142919.192475924-417b9bcc5b09 | 第一台 | scert-multi-20260930.odacm.cn | 缺失 | 存在 | +| 20261003-142924.300953335-fac63bc92b1f | 第二台 | scert-multi-20260930.odacm.cn | 缺失 | 存在 | +| 20261004-125332.132786506-840997911780 | 第二台 | acceptance-0928.odacm.cn | 缺失 | 存在 | +| 20261005-155817.537790327-15debedd0e44 | 第二台 | scert-multi-20260930.apmmk.cn | 缺失 | 存在 | + +四条数据库记录均为 reload_attempted、recovery_required。源码 recovery_executor.go 要求回滚具备 PreviousFingerprint,app.go 的正式校验还要求目标域名、端点及实际可信 HTTPS 指纹匹配;不允许事后补造历史基线。最近一条记录对应目标文件不存在,也不满足提交条件。 + +### 本轮结论 + +- [✓] 已定位当前第二台 SNI 错误与历史恢复缺失条件,不再归因于 SSH 认证。 +- [!] 历史事务仍需安全处置方案,本轮未提交或回滚、未重试任务、未删除锁、未写证书、未改 Nginx、未改数据库状态。 +- [ ] 第二台正式推送、回滚与恢复验收仍未通过;独立邮件、重置、角色界面、三库与 DNS/ACME 验收继续保留。 diff --git a/doc/Scert整改任务执行清单.md b/doc/Scert整改任务执行清单.md index 205227f..1766d6c 100644 --- a/doc/Scert整改任务执行清单.md +++ b/doc/Scert整改任务执行清单.md @@ -3255,3 +3255,20 @@ P0-05 从 `[!]` 调整为 `[~]`,并未标记完成;P0-04 剩余门禁和全 - [ ] 三库首次 Web、重启持久化、DNS/ACME 正负向与最终整体验收。 本轮没有进行源码修改、重复构建、安装或服务重启。第一台安装时间为现场文件时间及服务状态所示,本轮仅核验当前结果,不把未知操作者的安装过程记为本轮操作。 + +## 2026年10月6日10时35分 SSL 推送恢复条件核查 + +### 已确认需求与范围 + +继续第一台 Linux 验收和第二台仅 SSL 推送核查;本轮先确定失败原因与历史恢复条件,不清库、不删文件、不处置锁,不干扰 PMail。 + +- [✓] 第二台 Nginx、MySQL、PMail 均 active;目标 SNI 严格校验返回 hostname mismatch,错误码62,现有 TLS 站点只配置 xuans.vcer.cn 和 vcer.cn 证书路径。 +- [✓] 锁扫描改为 *.scert-lock;第二台 apmmk 测试域名及 acceptance 测试域名目录各有三个锁,之前精确匹配 .scert-lock 的有限扫描漏检。 +- [✓] 受保护管理台菜单2只读核查列出4条待恢复事务;最近一条事务的三类目标文件、临时文件及备份不存在,三个锁仍归属该事务。未进入处置流程。 +- [✓] 第一台实际应用数据库为 SQLite;MySQL 服务运行不代表应用使用 MySQL。以 mode=ro 和 query_only 读取事务字段白名单,确认4条记录旧指纹均缺失。 +- [✓] 管理台本次退出状态 success、inactive;主服务、存储套接字、Nginx 均 active。 +- [!] 正式回滚受旧指纹缺失阻塞;最近一条事务缺少目标证书,不能提交。此处保留安全限制,不把文件不存在解释为运行态恢复成功。 +- [ ] 制定缺少初次站点基线的安全处置方案,再建立隔离测试站点并进行正式推送、受控回滚验收。 +- [ ] 继续独立验收项:新版其他角色界面、真实邮件及用户可输入终端中的受保护重置、三数据库隔离首次流程。 + +本轮只读检查不触发清库或重新初始化;没有源码修改、构建、Scert 上传、Nginx 配置变更、服务重载、文件删除或事务状态更新。 diff --git a/doc/Scert整改合并优化清单.md b/doc/Scert整改合并优化清单.md index 71d39ce..46f7dfc 100644 --- a/doc/Scert整改合并优化清单.md +++ b/doc/Scert整改合并优化清单.md @@ -1,5 +1,16 @@ # Scert 整改、合并与优化清单 +## 2026年10月6日10时35分 最新状态:推送失败根因与恢复证据 + +- [✓] 第二台目标域名未绑定独立 HTTPS 站点,现有 PMail 站点提供 vcer.cn 证书;在已认证服务器内以目标 SNI 严格核验得到域名不匹配,不能当作公网正常 DNS 验收。 +- [✓] 更正此前锁扫描:实际名称为 cert.pem.scert-lock 等,必须匹配 *.scert-lock;第二台测试域名目录仍有部署锁,不代表 Scert 服务或部署包残留。 +- [✓] 正式管理台只读核查返回4条待恢复事务,最近一条第二台事务的目标、临时文件和备份均不存在,三个锁仍存在且归属匹配。管理台退出结果为 success,未执行处置。 +- [✓] 通过 SQLite 只读连接及 query_only 核查,4条待恢复事务的旧证书指纹均为空,新证书指纹均存在;只输出字段白名单,未输出锁令牌或凭据。 +- [!] 当前正式回滚入口要求可信旧证书指纹;最近一条事务也不满足提交所需的目标文件条件。保留事务和锁,不伪造基线、不修改终态、不手工向锁定路径写入证书。 +- [ ] 在保持 PMail 不受影响的前提下,明确缺少初始站点基线事务的安全处置方案,再进行第二台正式 SSL 推送验收;真实邮件、重置、三库和 DNS/ACME 整体验收继续未完成。 + +本节覆盖此前有限扫描未发现锁的推断,以及管理台仍为历史 failed 的描述。主服务、存储套接字及 Nginx 当前正常;本轮没有部署、重载、文件删除或数据库写入。 + ## 2026年10月6日10时 最新状态:连接恢复、新版在线、账号显示通过 - [✓] 用户更正凭据后,两台服务器均已通过严格主机密钥校验并以 root 登录。本节覆盖此前 SSH 认证阻塞记录,不记录凭据内容。