Smail/docs/加密端口配置优化.md
smail f98814d1cb
Some checks are pending
Security Checks / security (push) Waiting to run
优化加密配置端口自动联动并完成运行验收
2026-09-06 14:15:46 +08:00

3.1 KiB
Raw Blame History

加密端口配置优化

需求确认

  • SMTP 中继选择加密方式后自动填写端口,不要求用户记忆常用端口。
  • 网页加密方式联动内置 HTTPS 开关和端口,反代模式继续停用 Smail 自动证书签发与续期。
  • 读取配置不覆盖自定义端口;SMTP 主动切换加密方式后填写推荐值,允许再次手动调整。
  • 使用可视化表单,不新增 JSON 编辑入口,不修改当前业务数据库或邮件数据。
  • 重新编译并运行项目,确认实际运行的是更新后的前端。

任务状态

  • [✓] 检查当前分支、工作区与运行状态,提交并推送修改前检查点。
  • [✓] 完成 SMTP 加密方式与推荐端口联动。
  • [✓] 完成网页访问方式与 HTTPS 端口联动。
  • [✓] 提供推荐值说明和一键恢复入口,保留手动输入。
  • [✓] 63 项前端测试,以及配置、验证邮件、HTTP 服务三个后端包测试通过。
  • [✓] 前端和后端构建完成,普通权限启动成功,浏览器实际操作验收通过。

配置规则

配置方式 推荐端口 行为
SMTP STARTTLS 587 主动切换时自动填写
SMTP 隐式 TLS / TLS 兼容模式 465 主动切换时自动填写
SMTP 本机不加密 25 仅限回环地址;远程明文拒绝通过校验
内置 HTTPS 443 自动开启内置监听;缺少端口时补全,保留有效的自定义端口
内置模式 HTTP 80 缺少端口时补全
反代模式 HTTP 8080 缺少端口时补全;已有监听端口不强制修改,HTTPS 端口归零

一键使用推荐端口只修改当前草稿,仍需完成校验、保存候选与应用流程。它不会立即重启服务,也不会更改反代服务器的配置。

邮件服务端口与 SMTP 中继端口不是同一组设置。本次不把收信端口 25 替换为客户端提交端口 465/587,也不把已有固定 TLS 监听伪装成可切换的加密模式。

验收范围

自动测试在 test-log/ 下的独立空目录运行,不连接实际业务数据库。开发服务沿用根目录 config/ 下的现有运行配置。本次不执行清空真实账号、邮件、凭据或密钥的操作,不将表单交互验收等同于外部邮件投递或生产反代验收。

验收记录

  • 前端测试:node test/run.mjs frontend,63 项通过。
  • 后端定向回归:node test/run.mjs backend -count=1 ./config ./services/verification ./listen/http_server,三个包通过。
  • 构建:powershell -NoProfile -ExecutionPolicy Bypass -File deploy/build.ps1。
  • 浏览器确认内置 HTTPS 自动补全、反代字段切换、四种 SMTP 选项的端口联动、自定义输入、恢复推荐值、远程明文错误提示。
  • 重启后刷新保持登录;浏览器控制台无错误或警告,候选配置为空,当前配置未被测试草稿覆盖。
  • 测试日志和交互记录位于 test-log/。本次未运行完整后端全量回归、真实邮件投递或生产反代端到端验收。
  • 构建仍有部分资源包超过 500 kB 的体积警告,不影响构建成功;未将其描述为已消除。