docs: record verified HN t34 endpoint migration

This commit is contained in:
hellcat 2026-10-28 12:50:01 +08:00
parent 360c155fae
commit 39d7277f4b
2 changed files with 19 additions and 5 deletions

View File

@ -1,6 +1,6 @@
# HN 邮件与订阅网关
2026-10-27,按用户“参考DPL”授权配置;所有凭据、数据库与运行实例独立,未向DPL发布。主站与后台见 [HN_PRODUCTION](HN_PRODUCTION.md)。本文是实现、验收和恢复的唯一正文。
2026-10-27初始化,2026-10-28按用户要求将c2订阅域名迁至t34;所有凭据、数据库与运行实例独立,未向DPL发布。主站与后台见 [HN_PRODUCTION](HN_PRODUCTION.md)。本文是实现、验收和恢复的唯一正文。
## 域名与渠道
@ -8,10 +8,20 @@
- `hardnerd.dev`:系统邮件域名,保留Namecheap BasicDNS和Private Email MX/SPF、privateemail DKIM。用户实际建立的是 `mail@hardnerd.dev`,保留其名称。
- Resend:独立账号ACC-RESEND-HN,Tokyo,domain ID `db1cf9ac-3d57-41b5-9fd0-f567ab40b520`。`resend._domainkey` TXT、`rsend` CNAME到`rsend-apne1.forge.rmta.net`、`send` CNAME到`send.forge.rmta.net`均verified。Resend receiving关闭;企业收件走IMAP。
- 邮箱:Namecheap Private Email Launch,订阅4476265,1/1邮箱、5GB;后台已显示服务有效至2027-10-27、自动续费开启,不代表将来扣款成功。
- `hardnerd-nodes.com`:独立Cloudflare Free zone `1043df03492d50f87d92300a6729362e`,NS `bradley.ns.cloudflare.com` / `jewel.ns.cloudflare.com`,权威/公共解析及active状态已核实。root A与c2 A指向gateway-01,www CNAME根域,均橙云;原Namecheap转发MX/SPF保留,不作为HN业务邮箱。
- 正式订阅基址 `https://c2.hardnerd-nodes.com` 已写入仅HN的 `subscribe_url`,生成链接主机已回读。root/www跳到hardnerd.net;c2只开放 `/s/<token>` 和 `/api/v1/client/subscribe`,其他路径404,不提供公开管理端。
- `hardnerd-nodes.com`:独立Cloudflare Free zone `1043df03492d50f87d92300a6729362e`,NS `bradley.ns.cloudflare.com` / `jewel.ns.cloudflare.com`,权威/公共解析及active状态已核实。root A与t34 A指向gateway-01,www CNAME根域,均橙云;原Namecheap转发MX/SPF保留,不作为HN业务邮箱。
- 正式订阅基址 `https://t34.hardnerd-nodes.com` 已写入仅HN的 `subscribe_url`,生成链接主机已回读。root/www跳到hardnerd.net;t34只开放 `/s/<token>` 和 `/api/v1/client/subscribe`,其他路径404,不提供公开管理端。
- Cloudflare完整(严格)在源站证书验证通过后保存;Cache Rule `d765537a713747faa2a6e9cd1009c8a9` 对所有请求绕过缓存。Bot Fight/Under Attack未开启,未关闭BIC或改账号安全设置。
## 2026-10-28 t34 域名迁移
用户明确将c2.hardnerd-nodes.com改为t34.hardnerd-nodes.com。新t34 A记录到相同gateway-01、橙云及自动TTL,旧c2记录已移除;不保留旧地址为正式订阅别名。HN subscribe_url已修改,生成链接主机回读t34。原全区缓存绕过和严格TLS保持,不改日志设置、认证、邮箱、DPL/FUC配置。
运维提交 `360c155fae5bbf86654fdcba1d0de33b80fb7de4` 先推送后部署;`scripts/hn/gateway/migrate-t34.py`分prepare/certificate/activate执行。新证书独立lineage t34,SAN=t34/root/www,有效至2027-01-26;宿主/容器证书路径、SNI、环回管理端模板和hn-gateway-cert.service已同步。仅重建HN两个容器以刷新只读挂载模板,保留原卷和管理员凭据;DPL/FUC四个原容器及Nginx哈希基线通过。旧c2证书只保留回退,不由现行专用timer续期。
经白色机实际测试:t34有效限时账号得到sing-box JSON和Clash YAML,invalid token403,非订阅/管理路径404,CF DYNAMIC、private/no-store及过滤头存在;源站证书校验、新lineage续期dry-run及专用HN reload hook均通过。QA用户ID4已禁用、额度清零、到期、令牌轮换、会话0。当前回读套餐0、节点1;节点来自既有/并行业务,本任务没有新增/改动节点,不把订阅格式验收写成节点联网验收。未做线上页面验收。
网关备份 `/root/codex-backups/hn-gateway/20261028-t34/` 保存本次保护基线、旧host/proxy/cert service、旧证书symlink和deployment metadata;HN应用设置备份 `/root/codex-backups/hn/20261028-t34/subscribe-before.json`。本次本地证据 `codex/output/hn-t34-20261028/`。回退先恢复旧c2橙云A记录及旧网关Git模板/备份vhost、proxy、证书symlink、专用service,nginx -t后仅重建HN容器并平滑reload,再恢复HN subscribe_url;保留新旧证书/卷和凭据,不用全局docker/Certbot操作,不重启DPL/FUC。
## HN 邮件运行配置
`/www/wwwroot/hardnerd.net/.env`、HN库的 `mail_flow` 设置;SMTP465 SSL与IMAP993 TLS均校验证书。旧Laravel读取 `MAIL_DRIVER`,已明确设smtp,不能只设MAIL_MAILER。发件名称hardnerd、地址及Reply-To均为自有邮箱,页脚主站hardnerd.net,空MAIL_LOGO_PATH避免沿用DPL图片。
@ -35,7 +45,7 @@ Git分支 `codex/hn-production`。首个网关安装器d8a5091,首启等待/
- gateway内存160MB/0.5CPU,admin128MB/0.5CPU;启动前可用内存538MB,端口/子网/磁盘/固定镜像均检查。既有DPL/FUC资源不停止、不复用HN卷。
- 宿主 `/etc/nginx/conf.d/hn-subscribe.conf`、独立Cloudflare可信IP include与proxy include。宿主验证容器证书,容器验证HN上游证书,均不跳过TLS;已知域名SNI固定。
- 初启镜像下载公开云IP列表再启动Nginx;安装器等待其初始化,失败后只允许相同凭据安全续跑,不重建身份或覆盖变更。
- 独立证书SAN含c2/root/www,到2027-01-25;目录 `/etc/hn-gateway-letsencrypt`,ACME账户从同宿主既有已接受条款的账户复制到独立目录,未创建新账户或运行全局hooks。
- 独立证书SAN含t34/root/www,到2027-01-26;目录 `/etc/hn-gateway-letsencrypt`,ACME账户从同宿主既有已接受条款的账户复制到独立目录,未创建新账户或运行全局hooks。
- hn-gateway-cert.timer专属续期,renew-gateway.sh仅重载两个HN容器和宿主Nginx;hn-gateway-cloudflare-ips.timer维护HN可信代理段。独立续期dry-run通过,未改DPL/FUC续期。
## 验收证据与边界
@ -43,7 +53,7 @@ Git分支 `codex/hn-production`。首个网关安装器d8a5091,首启等待/
证据本地忽略目录 `codex/output/hn-mail-20261027/`;远端私有备份下保存配置/SQL/回调与测试收据,不能输出其中秘密。
- 两封SendEmailJob测试只发用户新建邮箱:Resend verification一封、conventional other一封;没有跨渠道重复发送。IMAP实收2封、SPF和DKIM均pass、HN正文/页脚正确、无DPL品牌;IMAP入库2封。Resend已投递且有时间;SMTP仅记submitted,真实收件另证,未伪造SMTP回执。
- 白色机实际HTTPS请求:HN主站和DPL主站200,订阅root404;源站TLS校验通过。c2有效受限用户输出sing-box JSON与Clash YAML结构,invalid token403,管理路径404,no-store与过滤响应头存在。
- 白色机实际HTTPS请求:HN主站和DPL主站200,订阅root404;源站TLS校验通过。正式入口有效受限用户输出sing-box JSON与Clash YAML结构,invalid token403,管理路径404,no-store与过滤响应头存在。
- 为保留审计同时避免令牌进入URL日志,真实有效令牌测试放GET JSON body,未持久改变原HN主站日志配置;非秘密invalid token验证了常规查询路径和短路径。没有对外展示或记录有效订阅URL。
- 限时非管理员QA用户ID2,example.invalid、1MB/30分钟、无权限组/无节点;结束已禁用、额度清零、到期、令牌轮换且会话0,未删除审计证据。套餐/节点为空,未声称实际代理联网通过。
- 四个原DPL/FUC容器ID、启动时间、重启次数与既有Nginx配置hash基线一致。HN主站外其他站点配置未改。未发布DPL功能代码。

View File

@ -2,6 +2,10 @@
文档核对日期:2026-10-11。以下区分本会话检查结果与用户验收确认,不承诺服务器一直保持此状态。
## HN 订阅域名改为 t34(2026-10-28,服务器侧验收完成)
用户指定后,新入口为t34.hardnerd-nodes.com,旧c2 DNS已移除;HN subscribe_url、生成链接、源站/容器TLS与SNI、独立续期同步。有效限时账号两种格式200、无效令牌403、非订阅404、CF DYNAMIC/no-store、证书续期及HN专用hook通过,QA ID4已禁用和轮换令牌。DPL/FUC原容器和配置基线保持,未改节点、邮箱或认证;节点联网不属于本次验收。实现、版本及回退见 [HN_MAIL_GATEWAY](HN_MAIL_GATEWAY.md)。未做线上页面验收。
## HN 首次线上部署(2026-10-27,服务器侧验收完成)
用户指定 sitejp02、主域名 hardnerd.net,已使用独立数据库和 EZ 上线;后台 admin.hardnerd.net,默认管理员已创建并验证。Git功能提交2e5cec6已推送HN专用分支并在服务器部署;Cloudflare代理/严格HTTPS、源站证书、前后台及权限通过,唯一验收会话已撤销。DPL提交/既有Nginx配置/原服务启动时间不变,DPL公网200。未做线上页面验收;套餐、节点及支付未配置。邮件及辅助域名随后已接通,见下节。具体服务、证据、恢复与限制见 [HN_PRODUCTION](HN_PRODUCTION.md)。下文“未推送/部署”是各历史阶段当时状态,不代表当前HN尚未部署。