补录Linux部署复审与证书维护故障修复
Some checks are pending
Security Checks / security (push) Waiting to run

This commit is contained in:
smail 2026-10-06 06:18:02 +08:00
parent b2f0af1000
commit 48d813db5e
3 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,73 @@
# Linux 上线复审记录
## 范围与结论
记录时间:2026 年 10 月 6 日 06:16(UTC+08:00)。本节接续云端实机验收,不重新清库、初始化或重置账号。
- [✓] 当前 Linux 三个程序的本地与部署摘要一致,运行版本为 `review-733612b`。
- [✓] 本轮接续中三个指定角色均通过真实网页注销后使用指定密码重新登录,不是只验证旧会话。
- [✓] 修复外部证书维护任务的缺失配置及邮件端证书未同步问题,真实任务执行成功。
- [!] 整体仍未放行:外部邮箱实际收件与绑定、真实续期换证、外部集成及原清单剩余范围尚未全部闭合。
本轮没有修改业务源码,没有重跑自动化测试。业务检查使用真实网页,协议检查使用原生 OpenSSL;没有调用内部业务接口、读取数据库验证码或使用辅助业务测试脚本。
## 发布版本与摘要
源提交:`733612bcfb052a089a4f5e0dd4c220001f8fb09a`。前段已统一构建和部署三个程序,本轮重新核对本地与部署 SHA256。
| 文件 | 字节数 | SHA256 |
| --- | ---: | --- |
| `smail` | 66527394 | `be8f6a584a017abe3177a057e99d023e56c93a24ad87935bbaeefc1f77effdad` |
| `smail-admin` | 9650338 | `cc485b203d8b0203fa65fef9efa7c731d1ee3a71a6d2c640eb6b1b6db01a2cc4` |
| `smail-config` | 10735778 | `08b367a1f8106f4d52a8f890651676a7aa634e468e9ac6832f8d4e3fbae64130` |
- [✓] 主进程 `2405511`,启动时间 05:52:19,自动重启零;证书维护后主进程未变化。Smail、Nginx 均运行。
- [x] 本地部署收据:`out/release-receipts/review-733612b-linux-amd64.json`,属于忽略产物,不提交仓库。
- [!] 构建元数据为 `vcs.modified=true`,不能称为干净构建。原压缩包和归档收据仍为旧版本,新收据没有关联归档,不能用旧压缩包代表当前部署。
- [x] 前段核对线上首页与本地首页摘要一致,本轮未扩展为所有静态资源逐项核对。
## 网页角色与测试残留
- [✓] 三角色重新密码登录成功,页面身份和权限标签正确;超管用户管理仅见默认分组和三个指定账号,状态正常、安全码开启、外部邮箱未绑定。
- [✓] 本轮超管、管理员均无可用客户端授权、只有五个默认文件夹;管理员规则为空,黑白名单均为零。
- [x] 普通用户相应核查及三账号测试邮件清理沿用前段直接网页证据,不误记为本轮重测。页面列表为空不等于底层历史数据全部清除。
- [✓] 安全码两处入口共享 `60 * 1000` 毫秒时限,隐藏时清除页面明文,安全中心保存功能保留。本轮只复核源码,没有重复生成或完整计时实测。
## 证书维护故障与修复
### 故障证据
1. 维护定时器已启用,但服务在 10 月 5 日和 6 日均因两份环境文件缺失启动失败,结果为 `resources`。
2. 原任务仅发布 Nginx 合并证书并重载 Nginx,未同步邮件端正在引用的部署目录证书。
3. 当前使用代理托管,不能把 Smail 内置续期视为外部任务的替代。
### 执行结果
- [✓] 恢复 `/etc/smail/acme-dns.env` 和 `/etc/smail/acme-renew.env`,权限均为 `0600 root:root`。密钥受保护输入,不进入仓库、收据或报告;沿用已有 ACME 账户身份。
- [✓] 新增 `/etc/systemd/system/smail-certificate-renew.service.d/20-mail-tls.conf`。先由原生发布工具校验证书、域名并发布 Nginx 证书,再将证书和私钥复制到邮件端临时文件后分别重命名到原路径,最后检查并重载 Nginx。
- [✓] 邮件端保留证书与私钥分离路径及 `0600 smail:smail` 权限;两次重命名不是跨文件原子事务,当前仍使用 `--reuse-key` 策略,不宣称原子替换一对证书。
- [✓] 合并 PEM 作为邮件端输入的尝试被页面证书校验拒绝,原配置未改变。已刷新确认原路径继续生效,没有放宽校验。
- [x] 该尝试生成的 `/opt/smail/ssl/service-tls.pem` 未被引用,权限 `0600 root:root`;按不擅自删除文件要求暂留,列入待确认清理。
- [✓] 06:12:08 启动真实维护任务,06:12:10 结束,`Result=success`、`ExecMainStatus=0`。Nginx 前后配置检查通过,证书发布及邮件文件同步完成,Smail 未重启。
- [!] ACME 返回无需续期,没有新签发;本次不证明 DNS 凭据有效、挑战成功、加载新证书或自然到期调度成功。
### 修复后验证
- [✓] 从服务器经正常域名解析,SMTP 465、SMTP 587 STARTTLS、IMAP 993、POP3 995、POP3 110 STLS 均完成 TLS 1.3 握手、系统信任链及主机名校验,并收到协议应答,未跳过校验或强制解析。
- [✓] 证书包含主域名及泛域名,有效期为 2026 年 10 月 4 日 01:23:52 至 2027 年 1 月 2 日 01:23:51(UTC+08:00)。
- [✓] Windows 本机正常公网 HTTPS 首页请求返回 200,未禁用证书校验;该证据只覆盖网页入口。
- [!] 服务器侧协议握手不等于独立外网连通、认证、收发或撤权验收。
## 其他观察与剩余门槛
- [✓] 本机恢复套接字存在,目录 `0750 root:root`、套接字 `0600 root:root`;未执行真实管理员重置。
- [x] 启动后的系统警告日志筛选无条目;应用日志另有外部 SMTP 认证失败记录,不宣称没有任何应用错误或安全事件。
- [!] `/tmp` 使用率 93%,约余 62 MB;旧 Smail 发布暂存约占 396 MB,已定位未删除。当前发布暂存在 `/opt`,该分区约余 19 GB。
- [ ] 三个外部邮箱须由持有人确认收件并输入验证码,完成绑定和恢复;对端接收不等于入箱或绑定成功。
- [ ] 真实 DNS 挑战、续期签发、新证书加载、长期调度及失败恢复仍待闭环。
- [ ] 外部集成及原清单未闭合的权限、配额、恢复、发布与清理范围仍须逐项核实。
- [ ] 经用户确认清理未引用合并证书及旧发布暂存,不扩大至其他服务。
## Git 与交付边界
修改前检查点 `b2f0af1` 已用中文提交并推送。本轮仅补充文档,不改业务源码;部署仍对应上述源提交而非后续文档提交。凭据、私钥、原有未跟踪检查产物均不暂存、不提交。

View File

@ -1,5 +1,13 @@
# 云端全项目测试报告
## Linux 部署与证书维护复审(2026-10-06 06:16)
当前统一部署版本为 `review-733612b`。本轮接续已完成三角色真实密码重新登录、剩余页面残留核查、部署摘要与 TLS 复验;修复外部证书维护环境文件缺失、邮件端证书未同步问题。06:12 维护任务成功,但证书未到续期窗口,没有新签发。
完整摘要、部署端变更、失败尝试及未完成门槛见《Linux上线复审记录》。本轮未重跑自动化测试、未重复初始化,不以历史部分通过或首页 200 代替全项目验收。三个外部邮箱仍未绑定,整体不放行。
以下历史数据库、部署版本与角色配置不代表本节当前状态。
## PostgreSQL 角色提升、降级与旧会话复验(2026-10-04 11:17)
本节接续同一云端现场。业务操作全部通过浏览器键鼠,交互 SSH 仅用于核对 Smail、Nginx 运行状态;两者持续为 `active`。未修改业务源码、未重编译、未清理连续测试数据,也未影响同机其他项目。用户已人工确认附件下载后的本地保存正常,本节不重复附件下载。

View File

@ -1,5 +1,16 @@
# 生产整改验收清单
## Linux 统一部署与证书维护复审(2026 年 10 月 6 日 06:16)
- [✓] 三个 Linux 程序统一为 `review-733612b`,本地与部署摘要一致,主进程自动重启零。
- [✓] 三个指定角色已注销后重新密码登录;剩余页面残留核查详见《Linux上线复审记录》。
- [✓] 修复证书维护任务缺失环境文件、邮件端证书未同步问题;06:12 真实维护任务成功,Smail 未重启。
- [✓] 修复后五个邮件加密入口的域名、信任链及握手通过;本机公网 HTTPS 首页返回 200。
- [!] 本次无需续期,未发生真实 DNS 挑战或新证书换发;邮箱绑定、外部集成及原清单剩余门槛未关闭,整体不放行。
- [!] 旧归档收据不代表当前部署;新本地收据单独记录文件摘要及未完成状态。容量及未引用证书清理项详见复审记录。
以下保留历史证据,不覆盖本节当前运行状态。
## PostgreSQL 角色提升、降级与旧会话复审(2026 年 10 月 4 日 11:17)
- [✓] 超管页面将 `dbreview` 提升为管理员并保留甲、乙两组;经本人密码确认后保存,管理员重新登录后仅见所属两组,同级编辑按钮禁用。