deploy(M00-E): 补充Certbot证书检查
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
| 环境 | 检查项 | 命令/步骤 | 期望 | 实际 | 结果 | 时间 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| Windows | DNS/HTTPS | `scripts/dev/windows/check-api-domain.ps1` | PASS 或明确 WARN | 脚本已生成,待执行 | - | 2026-06-15 |
|
||||
| WSL | TLS/健康接口 | `setup.sh --https` | PASS 或明确 WARN | DNS 已解析到 `101.42.38.246`;TLS 证书主题为 `CN=git.txyundm.cn`;`/health` 不可达 | WARN | 2026-06-15 |
|
||||
| Ubuntu | Nginx/证书/公开 API | `setup.sh` 菜单 4 或 `setup.sh --https` | PASS 或明确 WARN | 检查脚本已生成,生产未执行 | - | 2026-06-15 |
|
||||
| WSL | TLS/健康接口/Certbot | `setup.sh --https`、`scripts/dev/wsl/check-api-domain.sh` | PASS 或明确 WARN | DNS 已解析到 `101.42.38.246`;TLS 证书主题为 `CN=git.txyundm.cn`;`/health`、`/app-api/health`、`/admin-api/health` 不可达;Certbot 生产项未安装 | WARN | 2026-06-15 |
|
||||
| Ubuntu | Nginx/证书/公开 API/Certbot | `setup.sh` 菜单 4 或 `setup.sh --https` | PASS 或明确 WARN | 检查脚本已生成,生产未执行 | - | 2026-06-15 |
|
||||
| 微信开发者工具 | request/upload/download | 关闭忽略合法域名 | 成功 | 未执行 | - | - |
|
||||
| 微信真机 | 登录/上传/下载/下单/开门 | 体验版 | 成功 | 未执行 | - | - |
|
||||
|
||||
@@ -18,5 +18,6 @@
|
||||
## 问题与修复
|
||||
|
||||
- 已补充 Windows 域名检查脚本、Ubuntu 菜单第 4 项检查和 Nginx 模板。
|
||||
- 已补充 Certbot 检查脚本和生产管理员命令说明。
|
||||
- 生产 DNS、证书、Nginx 启用和健康接口仍未完成,不能标记为通过。
|
||||
- `api.txyundm.cn` 当前解析正常,但证书和健康接口不满足 API 验收要求。
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# 部署变更记录
|
||||
|
||||
## 2026-06-15 / 0.1.2-m00-certbot-check
|
||||
|
||||
- 关联模块:M00-E
|
||||
- 关联 commit:本轮提交推送后以远端 HEAD 为准
|
||||
- 变化内容:新增 `scripts/setup/certbot.sh` 和 `deploy/certbot/api.txyundm.cn.commands.md`,菜单第 4 项追加 Certbot、证书文件、续期配置和 `certbot.timer` 检查。
|
||||
- 配置变化:`setup.sh --https` 会同时输出证书签发命令和续期 dry-run 命令。
|
||||
- 数据库变化:无。
|
||||
- 兼容性:仅增加检查和管理员命令说明,不自动申请证书,不写入 `/etc/letsencrypt`。
|
||||
- 已执行验证:Windows 本地检查和敏感信息扫描通过;WSL `bash -n`、`setup.sh --preflight/--status/--https/--diagnose`、`scripts/dev/wsl/check-api-domain.sh` 通过,生产项按预期返回 WARN。
|
||||
- 回滚方式:移除新增 Certbot 检查脚本和命令说明即可回到 0.1.1 行为;未改动生产环境。
|
||||
- 生产环境人工步骤:管理员在 Ubuntu 上准备 `/var/www/certbot`、执行 `certbot certonly --webroot` 和 `certbot renew --dry-run`。
|
||||
|
||||
## 2026-06-15 / 0.1.1-m00-domain-https-check
|
||||
|
||||
- 关联模块:M00-E
|
||||
|
||||
@@ -2,20 +2,20 @@
|
||||
|
||||
| 项目 | 当前值 |
|
||||
|---|---|
|
||||
| 菜单脚本版本 | 0.1.1-m00-domain-https-check |
|
||||
| 菜单脚本版本 | 0.1.2-m00-certbot-check |
|
||||
| Gitea 仓库 Web | https://git.txyundm.cn/panda/qipai.git |
|
||||
| API 固定域名 | https://api.txyundm.cn |
|
||||
| 小程序 API | https://api.txyundm.cn/app-api |
|
||||
| 后台 API | https://api.txyundm.cn/admin-api |
|
||||
| 上传文件基址 | https://api.txyundm.cn/uploads/ |
|
||||
| HTTPS 证书到期时间 | 未验证 |
|
||||
| 证书续期 dry-run | 未验证 |
|
||||
| HTTPS 证书到期时间 | 线上返回 `2026-09-13`,但当前证书主题为 `git.txyundm.cn`,不作为 API 证书验收 |
|
||||
| 证书续期 dry-run | 菜单已提供检查和命令;生产未执行 |
|
||||
| 微信合法域名 | 未验证 |
|
||||
| Gitea 仓库 SSH | ssh://git@git.txyundm.cn:2222/panda/qipai.git |
|
||||
| 生产拉取仓库 | ssh://git@127.0.0.1:2222/panda/qipai.git |
|
||||
| 默认分支 | main |
|
||||
| 最近模块 push commit | `f5445f1`(M00-E 域名/HTTPS 检查) |
|
||||
| 最近 push 远端校验 | 通过:`HEAD == origin/main`(`f5445f16d71cacc85bd504238a4d50b21aa01c0b`) |
|
||||
| 最近模块 push commit | 远端 HEAD(本轮 Certbot 检查提交后复验) |
|
||||
| 最近 push 远端校验 | 推送后执行 `HEAD == origin/main` 校验 |
|
||||
| 目标系统 | Ubuntu 24.04 |
|
||||
| 内核架构 | x86_64 |
|
||||
| DPKG 架构 | amd64 |
|
||||
@@ -25,15 +25,15 @@
|
||||
| 命令行 MQTT 工具 | mosquitto-clients:未安装/未验证 |
|
||||
| Windows MQTTX 验证 | 未验证 |
|
||||
| WSL 环境验证 | 已完成轻量检查、shell 语法检查、临时副本准备和清理;完整构建待正式项目生成 |
|
||||
| 最近环境快检 | 2026-06-15 WSL 执行 `setup.sh --preflight/--status/--https/--diagnose` 通过;HTTPS 检查返回证书/健康接口 WARN |
|
||||
| 最近环境快检 | 2026-06-15 WSL 执行 `setup.sh --preflight/--status/--https/--diagnose` 通过;HTTPS/Certbot 检查返回证书、健康接口和 certbot 未安装 WARN |
|
||||
| 最近部署后复检 | 未执行 |
|
||||
| 最近验证 commit | `f5445f1`;M00-E 域名/HTTPS 检查已推送并完成远端校验 |
|
||||
| 最近验证 commit | 远端 HEAD(本轮脚本验证已通过,推送后复验) |
|
||||
| 最近验证日期 | 2026-06-15 |
|
||||
| 已验证系统 | Ubuntu 24.04 / 未验证 |
|
||||
| 菜单 1 首次安装 | 脚本已实现目录布局;未在生产 Ubuntu 执行 |
|
||||
| 菜单 2 更新业务 | 脚本已实现仓库检查和 dry-run 发布清单;未在生产 Ubuntu 执行 |
|
||||
| 菜单 3 MQTT | 状态检查已实现;EMQX 安装未执行 |
|
||||
| 菜单 4 域名与 HTTPS | 域名、Nginx 模板、站点启用、TLS 和健康端点检查已实现;当前线上证书为 `git.txyundm.cn`,证书申请/续期未执行 |
|
||||
| 菜单 4 域名与 HTTPS | 域名、Nginx 模板、站点启用、TLS、健康端点、Certbot、证书文件、续期配置和 `certbot.timer` 检查已实现;当前线上证书为 `git.txyundm.cn`,证书申请/续期未执行 |
|
||||
| 菜单 5 状态 | 已实现 |
|
||||
| 菜单 6 备份 | manifest-only 已实现;真实备份待生产配置 |
|
||||
| 菜单 7 恢复 | 人工恢复提示已实现 |
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
- 生成 `scripts/dev/windows/push-module.ps1` 和 `check-gitea-ssh.ps1`,串联模块检查、提交、推送和远端校验。
|
||||
- 生成 `scripts/setup/*.sh` 和新版 `setup.sh` 菜单,覆盖 `/opt/apps` 目录、仓库状态、dry-run 发布清单、备份 manifest、恢复/回滚提示和诊断。
|
||||
- 继续补强 M00-E,新增固定 API 域名 Nginx 模板、Ubuntu 菜单第 4 项域名/HTTPS 检查和 Windows 域名检查脚本。
|
||||
- 继续补强 TLS-001,新增 Certbot 状态检查、证书签发/续期命令说明和 WSL 域名检查 WARN 记录。
|
||||
|
||||
## 起始状态
|
||||
|
||||
@@ -32,7 +33,7 @@
|
||||
|
||||
## 部署影响
|
||||
|
||||
有。新增并升级 `setup.sh` 与 `scripts/setup/*.sh` 菜单式部署骨架,补充 `api.txyundm.cn` Nginx 模板和域名/HTTPS 检查,但未执行生产部署。
|
||||
有。新增并升级 `setup.sh` 与 `scripts/setup/*.sh` 菜单式部署骨架,补充 `api.txyundm.cn` Nginx 模板、域名/HTTPS/Certbot 检查和证书命令说明,但未执行生产部署。
|
||||
|
||||
## 测试记录
|
||||
|
||||
@@ -44,6 +45,8 @@
|
||||
- PowerShell 语法检查:`push-module.ps1`、`check-gitea-ssh.ps1` 均已通过 Parser 检查。
|
||||
- 部署脚本:WSL 已执行 `bash -n setup.sh scripts/setup/*.sh`、`setup.sh --preflight`、`setup.sh --status`、`setup.sh --diagnose`;输出 PASS/WARN,未执行生产写入。
|
||||
- 域名/HTTPS:新增菜单检查和 Windows 检查脚本;WSL `setup.sh --https` 显示 `api.txyundm.cn` 可解析到 `101.42.38.246`,但线上证书主题为 `CN=git.txyundm.cn` 且 `/health` 不可达,生产 DNS/证书/健康接口仍不得标记通过。
|
||||
- Certbot:新增 `scripts/setup/certbot.sh` 和 `deploy/certbot/api.txyundm.cn.commands.md`;生产签发、续期 dry-run 和 `certbot.timer` 尚未执行。
|
||||
- WSL 域名脚本:`scripts/dev/wsl/check-api-domain.sh` 已改为输出 PASS/WARN,不因生产健康接口暂未上线而中断整体验证。
|
||||
- WSL 检查:已执行 `check-env.sh`、`check-workspace.sh`、`verify-linux.sh`、`prepare-test-copy.sh` 和 `cleanup-test-copy.sh`;临时副本创建和清理通过。完整 Linux 构建待正式后端/后台项目生成后执行。
|
||||
- Git fetch/push:首次多次失败后,`git push origin main` 已成功;随后 `git fetch origin main` 校验 `HEAD == origin/main` 通过。
|
||||
|
||||
|
||||
@@ -28,8 +28,9 @@
|
||||
- SAN:未确认包含 `api.txyundm.cn`
|
||||
- 生效/到期:线上返回 `2026-06-15` 到 `2026-09-13`,但不是已验收的 API 证书
|
||||
- 剩余天数:未计算
|
||||
- 自动续期:未验证
|
||||
- 最近 dry-run:未执行
|
||||
- Certbot 命令说明:`deploy/certbot/api.txyundm.cn.commands.md`
|
||||
- 自动续期:菜单第 4 项会检查 `certbot.timer`;生产未验证
|
||||
- 最近 dry-run:菜单已输出 `sudo certbot renew --dry-run`;生产未执行
|
||||
- 现场检查:菜单第 4 项会尝试读取线上 TLS 证书;生产 DNS/证书未完成前允许 WARN
|
||||
- 当前问题:`api.txyundm.cn` 返回的证书不应视为 API 域名证书验收通过
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
| SCM-001 | 模块完成即完整推送 | M00-B/M00-C | PARTIAL | 远端 HEAD | 首次 main push 成功,`HEAD == origin/main` 校验通过;推送脚本已生成。 | 后续模块仍需逐次执行并记录。 | 继续完善 M00-C 的 WSL 实际验证和脚本闭环。 |
|
||||
| WSL-001 | WSL 隔离辅助验证 | M00-C | PARTIAL | 本地 HEAD | WSL `check-env.sh`、`check-workspace.sh`、`verify-linux.sh`、`prepare-test-copy.sh`、`cleanup-test-copy.sh` 已执行通过;完整 Linux 依赖构建尚无正式项目可跑。 | 正式后端/后台尚未生成,无法执行完整 Linux 构建。 | M01/M09 生成项目后在 WSL 原生临时副本执行完整构建。 |
|
||||
| API-001 | 固定 HTTPS API 域名 | M00-E/M01/M08/M10 | PARTIAL | `f5445f1` | 已新增 Windows 检查脚本、Ubuntu 菜单检查和固定域名 Nginx 模板。 | DNS/HTTPS 生产验证未执行,后端健康接口未生成。 | 后续接入真实后端健康接口并执行 Windows/WSL/Ubuntu/微信真机验证。 |
|
||||
| TLS-001 | Nginx 与证书自动化 | M00-E/M10 | PARTIAL | `f5445f1` | 已生成 `deploy/nginx/api.txyundm.cn.conf.template`,菜单第 4 项可检查模板、站点启用、TLS 和健康端点。 | 证书申请/续期、80/443 生产验证未执行。 | 补证书申请/续期 dry-run 和生产 Nginx 安装记录。 |
|
||||
| TLS-001 | Nginx 与证书自动化 | M00-E/M10 | PARTIAL | 本轮提交推送后以远端 HEAD 为准 | 已生成 Nginx 模板、Certbot 命令说明和菜单第 4 项检查,可检查模板、站点启用、TLS、健康端点、证书文件、续期配置和 `certbot.timer`。 | 证书申请/续期 dry-run、80/443 生产验证未执行。 | 在生产 Ubuntu 执行证书签发、续期 dry-run 和 Nginx 安装记录。 |
|
||||
| WXNET-001 | 微信合法域名与真机验证 | M00-E/M08/M10 | TODO | - | 已补 API 域名报告入口,但未做微信后台或真机验证。 | 微信后台/真机未验证。 | 后续导入小程序后执行合法域名和真机验证。 |
|
||||
| OPS-001 | 固定 `/opt/apps` 目录 | M00-D/M10 | PARTIAL | 本地 HEAD | `scripts/setup/init-layout.sh` 已生成目录布局和 manifest;未在生产 Ubuntu 执行。 | 生产操作未执行。 | 由管理员在 Ubuntu 菜单执行并记录结果。 |
|
||||
| OPS-002 | 单仓库 Gitea 推送与拉取部署 | M00-B/M10 | PARTIAL | 远端 HEAD | Windows 到 Gitea `origin/main` 首次 push 与远端校验通过。 | 生产服务器只读拉取部署尚未验证。 | M00-D/M00-E 继续完善生产拉取、菜单部署和状态检查。 |
|
||||
|
||||
@@ -40,3 +40,9 @@ powershell -ExecutionPolicy Bypass -File scripts/dev/windows/check-gitea-ssh.ps1
|
||||
## 生产发布
|
||||
|
||||
生产服务器不得因 Gitea push 自动发布。管理员必须在 Ubuntu 上通过 `/opt/apps/setup.sh` 菜单拉取、构建、迁移和复检。
|
||||
|
||||
## 域名与证书
|
||||
|
||||
- Nginx 模板位于 `deploy/nginx/api.txyundm.cn.conf.template`。
|
||||
- Certbot 管理员命令说明位于 `deploy/certbot/api.txyundm.cn.commands.md`。
|
||||
- `setup.sh --https` 仅检查域名、Nginx、TLS、健康端点和 Certbot 状态,不自动申请证书或 reload Nginx。
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
| 模块 | 状态 | 最近提交 | 最近开发日志 | 备注 |
|
||||
|---|---|---|---|---|
|
||||
| M00 单仓库与服务器基础骨架 | PARTIAL | `f5445f1` | docs/devlogs/2026-06-15-M00-A-单仓库基线.md | M00-A/M00-B 基线已推送并校验;M00-C/D/E 持续完善,域名/HTTPS 检查已补模板但生产未验证。 |
|
||||
| M00 单仓库与服务器基础骨架 | PARTIAL | 本轮提交推送后以远端 HEAD 为准 | docs/devlogs/2026-06-15-M00-A-单仓库基线.md | M00-A/M00-B 基线已推送并校验;M00-C/D/E 持续完善,域名/HTTPS/Certbot 检查已补模板但生产未验证。 |
|
||||
| M01 后端 API 基础工程 | TODO | - | - | 等 M00 基线完成后开始。 |
|
||||
| M02 登录、租户、权限 | TODO | - | - | - |
|
||||
| M03 门店、房间、价格、营业时间 | TODO | - | - | - |
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
| `参考/24h_qipaishi-master(1).zip` | zip | 11649307 | `013ABA400BA44002DED6FF63D4E2480A080A9F1CB40E350916030DEBD7CE3D9A` | 用户提供 | 参考同类棋牌室源码结构 | 已隔离解包初审 | 含 `node_modules`/`miniprogram_npm` 和旧 AppID/旧域名,需清理后纳管 | 阻断,原包暂不提交 |
|
||||
| `参考/db_20260427.sql` | SQL | 5221326 | `B6D67B37FDA6B2C277A80A5D5FA7A7B54B3DE1049F0E3C16EBB1331CD6D8B8C7` | 用户提供 | 参考旧数据库表和字段 | 已初扫 | 含 INSERT 数据、文件 URL、日志和业务配置,需生成脱敏结构版 | 阻断,原 SQL 暂不提交 |
|
||||
| `参考/easy-joy-life-main.zip` | zip | 13660811 | `FC2B53CC0301B636B5BEC1E8A13223ED00B0D2DF5F101DAE67AC64722B5052FD` | 用户提供 | 参考无人棋牌室业务闭环 | 已隔离解包初审 | 含 PEM、支付密钥、AppSecret、数据库密码和生产/测试域名 | 阻断,原包暂不提交 |
|
||||
| `参考/env` | env 样例 | 1195 | `D8557B6314E39BF0E010087D39D253461CDD6185215488B400B13389C4476391` | 用户提供 | 参考旧运行包变量类别 | 不适用 | 已发现并脱敏 | 待提交 |
|
||||
| `参考/env` | env 样例 | 1195 | `D8557B6314E39BF0E010087D39D253461CDD6185215488B400B13389C4476391` | 用户提供 | 参考旧运行包变量类别 | 不适用 | 已发现并脱敏 | 已跟踪 |
|
||||
| `参考/mazongjian-server.xjar` | 旧后端运行包 | 194259651 | `E2403E24670CA9366BBB4CC2844E1979F3060C9ABEB0D76506BA0893677C17F0` | 用户提供 | 仅观察旧接口行为,不作为新系统依赖 | 不反编译 | 大文件,许可/体积风险 | 大文件阻断,暂不提交;已记录哈希 |
|
||||
| `参考/start.sh` | shell | 1265 | `31C39BD7AE3994BB9B6F63AAB2CFF77ED9D7800ABF37D276556A28B8D9E2FCD8` | 用户提供 | 参考旧服务启动方式 | 不适用 | 需确认无秘密 | 待提交 |
|
||||
| `参考/stop.sh` | shell | 771 | `5E218E887C43B5439C9BFCC216F34E15C03F3A0F6A16596BDEDD4D477D55BF94` | 用户提供 | 参考旧服务停止方式 | 不适用 | 需确认无秘密 | 待提交 |
|
||||
| `参考/xjar` | 二进制工具 | 2150870 | `AC02279C343A008D6CC9FC4CC7983DEC1984775B4182F48AC628A20124784F66` | 用户提供 | 旧运行包相关工具,正式系统不依赖 | 不适用 | 二进制许可风险 | 待提交 |
|
||||
| `参考/后台管理系统_20260427.zip` | zip | 9297096 | `9E5F09AFC38ADEB4FFAD724406F95D7F4E6494A8C3572486ED81C5C1E1FAF0F2` | 用户提供 | 参考旧后台静态/源码 | 待完成 | 未知,需解包扫描 | 待提交 |
|
||||
| `参考/start.sh` | shell | 1265 | `31C39BD7AE3994BB9B6F63AAB2CFF77ED9D7800ABF37D276556A28B8D9E2FCD8` | 用户提供 | 参考旧服务启动方式 | 不适用 | 需确认无秘密 | 已跟踪 |
|
||||
| `参考/stop.sh` | shell | 771 | `5E218E887C43B5439C9BFCC216F34E15C03F3A0F6A16596BDEDD4D477D55BF94` | 用户提供 | 参考旧服务停止方式 | 不适用 | 需确认无秘密 | 已跟踪 |
|
||||
| `参考/xjar` | 二进制工具 | 2150870 | `AC02279C343A008D6CC9FC4CC7983DEC1984775B4182F48AC628A20124784F66` | 用户提供 | 旧运行包相关工具,正式系统不依赖 | 不适用 | 二进制许可风险 | 已跟踪 |
|
||||
| `参考/后台管理系统_20260427.zip` | zip | 9297096 | `9E5F09AFC38ADEB4FFAD724406F95D7F4E6494A8C3572486ED81C5C1E1FAF0F2` | 用户提供 | 参考旧后台静态/源码 | 已隔离解包初审 | 未发现敏感配置文件,仍需后续按模块提取 | 已跟踪 |
|
||||
| `参考/小程序源代码.zip` | zip | 11579802 | `6EC18BE0C5E0602C75E114A12772F13E96BBAFCE6817ECE3FE0BF84D93B33A25` | 用户提供 | 参考旧微信小程序页面和接口 | 已隔离解包初审 | 含 `node_modules`/`miniprogram_npm`、旧 AppID、旧域名和 localhost 示例 | 阻断,原包暂不提交 |
|
||||
|
||||
## 当前结论
|
||||
|
||||
@@ -11,4 +11,5 @@
|
||||
| 部署结果 | 未部署;生产需管理员人工执行菜单 |
|
||||
| 回滚点 | - |
|
||||
| Nginx 模板 | `deploy/nginx/api.txyundm.cn.conf.template` |
|
||||
| 域名/HTTPS 检查 | `setup.sh` 菜单 4、`scripts/dev/windows/check-api-domain.ps1` |
|
||||
| Certbot 命令说明 | `deploy/certbot/api.txyundm.cn.commands.md` |
|
||||
| 域名/HTTPS 检查 | `setup.sh` 菜单 4、`setup.sh --https`、`scripts/dev/windows/check-api-domain.ps1`、`scripts/dev/wsl/check-api-domain.sh` |
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
| `database/` | 数据库迁移和种子 | 必须提交脱敏 SQL |
|
||||
| `deploy/` | 部署版本和说明 | 必须提交 |
|
||||
| `deploy/nginx/` | API 域名 Nginx 模板 | 必须提交模板,不提交证书 |
|
||||
| `deploy/certbot/` | API 域名证书签发和续期命令说明 | 必须提交命令说明,不提交证书或账户信息 |
|
||||
| `scripts/` | 检查、部署和运维脚本 | 必须提交 |
|
||||
| `docs/` | 状态、日志、变更和验收记录 | 必须提交 |
|
||||
| `docs/reference-page-map.md` | 旧小程序页面脱敏地图 | 必须提交 |
|
||||
|
||||
Reference in New Issue
Block a user