统一服务回环监听并记录标准端口反代要求
同步动态服务生成器与静态模板的回环地址策略,补充回归断言和双服务器只读核查记录。生产验收状态保持待复审。
This commit is contained in:
parent
48d10fefde
commit
51f7f3e55c
@ -18,6 +18,7 @@ func TestScertSystemdUnitPolicy(t *testing.T) {
|
||||
"Documentation=file:///scert/docs/Scert-service-management.md",
|
||||
"User=Scert",
|
||||
"Group=Scert",
|
||||
"Environment=SCERT_SERVER_HOST=127.0.0.1",
|
||||
"ExecStart=/scert/scert --config /scert/conf/scert.json serve",
|
||||
"Restart=on-failure",
|
||||
"UMask=0077",
|
||||
|
||||
@ -176,6 +176,7 @@ func renderUnitFile(options Options) (string, error) {
|
||||
"WorkingDirectory="+quoteUnitValue(normalized.WorkDir),
|
||||
"ExecStart="+quoteUnitValue(normalized.Executable)+" --config "+quoteUnitValue(normalized.ConfigPath)+" serve",
|
||||
"Environment=SCERT_BOOTSTRAP_FIREWALL_MODE=external",
|
||||
"Environment=SCERT_SERVER_HOST=127.0.0.1",
|
||||
"KillSignal=SIGTERM",
|
||||
"TimeoutStopSec=30",
|
||||
"Restart=on-failure",
|
||||
|
||||
@ -30,6 +30,7 @@ func TestRenderUnitFileIncludesExecutableConfigurationAndWorkDir(t *testing.T) {
|
||||
"RuntimeDirectory=scert",
|
||||
"RuntimeDirectoryMode=0700",
|
||||
"Environment=SCERT_BOOTSTRAP_FIREWALL_MODE=external",
|
||||
"Environment=SCERT_SERVER_HOST=127.0.0.1",
|
||||
"[Service]",
|
||||
"Type=simple",
|
||||
"User=Scert",
|
||||
@ -75,6 +76,7 @@ func TestPackagedUnitAllowsInterfaceDiscoveryWithoutCapabilities(t *testing.T) {
|
||||
"CapabilityBoundingSet=",
|
||||
"AmbientCapabilities=",
|
||||
"NoNewPrivileges=yes",
|
||||
"Environment=SCERT_SERVER_HOST=127.0.0.1",
|
||||
"User=Scert",
|
||||
} {
|
||||
found := false
|
||||
|
||||
@ -369,3 +369,21 @@ powershell -ExecutionPolicy Bypass -File .\install-windows.ps1 `
|
||||
```
|
||||
|
||||
Windows Service 实机安装、开机启动、停止、升级和 ACL 仍需在授权 Windows 主机上验收。
|
||||
|
||||
## 标准端口反向代理部署约束(2026-10-01)
|
||||
|
||||
本轮 Linux 部署使用以下端口边界;前面的自定义公开端口示例不用于本次生产部署。
|
||||
|
||||
| 组件 | 监听地址 | 用途 |
|
||||
| --- | --- | --- |
|
||||
| Nginx | 公网 `80` | 跳转到管理域名的 HTTPS 入口 |
|
||||
| Nginx | 公网 `443` | 管理页面及接口的唯一 HTTPS 入口 |
|
||||
| Scert | `127.0.0.1:8443` | 仅供本机 Nginx 访问,不在安全组或防火墙额外放行 |
|
||||
|
||||
静态安装模板与命令行生成的 Linux systemd unit 均设置 `Environment=SCERT_SERVER_HOST=127.0.0.1`。内部端口由 Scert 配置决定,本次使用 `8443`,该环境变量只约束监听地址。部署时必须核对已有 drop-in 或环境文件没有将监听地址覆盖为公网地址。
|
||||
|
||||
使用 `deploy/nginx/Scert.conf.example` 时,将 HTTP、HTTPS、上游端口分别填写为 `80`、`443`、`8443`,管理域名和证书路径使用实际配置。保留 `proxy_ssl_verify on`、管理域名 SNI 和可信 CA;不得通过关闭 TLS 校验解决上游证书错误。共享 Nginx 仅调整 Scert 对应站点,不覆盖邮件或其他站点。
|
||||
|
||||
首次初始化也不能临时开放公网业务端口。尚无可信管理证书时,通过密码 SSH 本地转发访问回环初始化入口,并按照既有初始化说明核验临时证书指纹;完成正式证书配置后再启用严格校验的公开反代。
|
||||
|
||||
复核至少包括:实际监听地址、`nginx -t`、HTTP 跳转、管理域名 HTTPS 就绪检查、回环上游严格 TLS 检查以及独立外部连接无法访问内部端口。检查通过不代替首次初始化、证书签发、部署恢复及数据库生产矩阵验收。
|
||||
|
||||
@ -1188,3 +1188,18 @@ git diff --check
|
||||
- [ ] T7 最终生产门禁和上线结论。
|
||||
|
||||
总体验收位置仍为 **P0-03:完成,待复审**,本轮不得标记全量生产验收通过。
|
||||
|
||||
## 2026-10-01 反向代理端口收敛记录
|
||||
|
||||
本节补充当前部署要求,不覆盖历史记录。当前仅处理 Linux;本轮是保留数据的端口配置复核,不代表清库首次初始化验收。
|
||||
|
||||
- [x] 已完成,等待复审:两台服务器通过密码 SSH 核验,Scert 均仅监听 `127.0.0.1:8443`;没有 `0.0.0.0:8443` 或 `[::]:8443` 监听。
|
||||
- [x] 已完成,等待复审:Nginx 对外监听 `80/443`,两台服务器的 `nginx -t` 均通过;未修改邮件及其他既有站点。
|
||||
- [x] 已完成,等待复审:第二台管理入口 `odacm.cn` 的 HTTP 请求返回 301 并跳转 HTTPS,反代 `/readyz` 和回环上游 `/readyz` 均返回 200;上游启用 SNI 和证书校验。
|
||||
- [x] 已完成,等待复审:从第二台服务器按正常 DNS 访问管理域名,连接地址为 `45.136.13.241`,HTTPS 就绪检查返回 200;该结果不是独立外部客户端的完整生产验收。
|
||||
- [x] 已完成,等待复审:静态 systemd 模板已提交并推送 `48d10fe`;动态生成的 Linux unit 同步回环监听约束,并补充模板与生成器回归断言。
|
||||
- [x] 已完成,等待复审:本地后端 `go test ./...`、`go vet ./...` 和 `git diff --check` 通过;本机 Windows 测试不代替 Linux 专属用例执行。
|
||||
- [~] 进行中:使用干净提交构建 Linux 候选包,核对安装后的默认 unit 和动态生成配置,并补充 Linux 专属用例证据。
|
||||
- [!] 暂缓或存在阻塞:历史恢复事务、双服务器真实失败回滚与重试幂等、Smail SMTP、数据库生产矩阵、备份恢复及最终生产门禁仍未完成。
|
||||
|
||||
端口边界:不新增公网业务端口,不为内部 `8443` 添加防火墙或安全组放行规则。SSH 运维端口与其他已有服务不属于本次端口收敛的修改范围。总体验收保持 **P0-03:完成,待复审**,不新增全量验收通过结论。
|
||||
|
||||
@ -1500,3 +1500,18 @@ P0-05 从 `[!]` 调整为 `[~]`,并未标记完成;P0-04 剩余门禁和全
|
||||
- [ ] T7 最终生产门禁和上线结论。
|
||||
|
||||
总体验收位置仍为 **P0-03:完成,待复审**,本轮不得标记全量生产验收通过。
|
||||
|
||||
## 2026-10-01 反向代理端口收敛记录
|
||||
|
||||
本节补充当前部署要求,不覆盖历史记录。当前仅处理 Linux;本轮是保留数据的端口配置复核,不代表清库首次初始化验收。
|
||||
|
||||
- [x] 已完成,等待复审:两台服务器通过密码 SSH 核验,Scert 均仅监听 `127.0.0.1:8443`;没有 `0.0.0.0:8443` 或 `[::]:8443` 监听。
|
||||
- [x] 已完成,等待复审:Nginx 对外监听 `80/443`,两台服务器的 `nginx -t` 均通过;未修改邮件及其他既有站点。
|
||||
- [x] 已完成,等待复审:第二台管理入口 `odacm.cn` 的 HTTP 请求返回 301 并跳转 HTTPS,反代 `/readyz` 和回环上游 `/readyz` 均返回 200;上游启用 SNI 和证书校验。
|
||||
- [x] 已完成,等待复审:从第二台服务器按正常 DNS 访问管理域名,连接地址为 `45.136.13.241`,HTTPS 就绪检查返回 200;该结果不是独立外部客户端的完整生产验收。
|
||||
- [x] 已完成,等待复审:静态 systemd 模板已提交并推送 `48d10fe`;动态生成的 Linux unit 同步回环监听约束,并补充模板与生成器回归断言。
|
||||
- [x] 已完成,等待复审:本地后端 `go test ./...`、`go vet ./...` 和 `git diff --check` 通过;本机 Windows 测试不代替 Linux 专属用例执行。
|
||||
- [~] 进行中:使用干净提交构建 Linux 候选包,核对安装后的默认 unit 和动态生成配置,并补充 Linux 专属用例证据。
|
||||
- [!] 暂缓或存在阻塞:历史恢复事务、双服务器真实失败回滚与重试幂等、Smail SMTP、数据库生产矩阵、备份恢复及最终生产门禁仍未完成。
|
||||
|
||||
端口边界:不新增公网业务端口,不为内部 `8443` 添加防火墙或安全组放行规则。SSH 运维端口与其他已有服务不属于本次端口收敛的修改范围。总体验收保持 **P0-03:完成,待复审**,不新增全量验收通过结论。
|
||||
|
||||
@ -2130,3 +2130,18 @@ P0-11 生产验收门禁
|
||||
- [ ] T7 最终生产门禁和上线结论。
|
||||
|
||||
总体验收位置仍为 **P0-03:完成,待复审**,本轮不得标记全量生产验收通过。
|
||||
|
||||
## 2026-10-01 反向代理端口收敛记录
|
||||
|
||||
本节补充当前部署要求,不覆盖历史记录。当前仅处理 Linux;本轮是保留数据的端口配置复核,不代表清库首次初始化验收。
|
||||
|
||||
- [x] 已完成,等待复审:两台服务器通过密码 SSH 核验,Scert 均仅监听 `127.0.0.1:8443`;没有 `0.0.0.0:8443` 或 `[::]:8443` 监听。
|
||||
- [x] 已完成,等待复审:Nginx 对外监听 `80/443`,两台服务器的 `nginx -t` 均通过;未修改邮件及其他既有站点。
|
||||
- [x] 已完成,等待复审:第二台管理入口 `odacm.cn` 的 HTTP 请求返回 301 并跳转 HTTPS,反代 `/readyz` 和回环上游 `/readyz` 均返回 200;上游启用 SNI 和证书校验。
|
||||
- [x] 已完成,等待复审:从第二台服务器按正常 DNS 访问管理域名,连接地址为 `45.136.13.241`,HTTPS 就绪检查返回 200;该结果不是独立外部客户端的完整生产验收。
|
||||
- [x] 已完成,等待复审:静态 systemd 模板已提交并推送 `48d10fe`;动态生成的 Linux unit 同步回环监听约束,并补充模板与生成器回归断言。
|
||||
- [x] 已完成,等待复审:本地后端 `go test ./...`、`go vet ./...` 和 `git diff --check` 通过;本机 Windows 测试不代替 Linux 专属用例执行。
|
||||
- [~] 进行中:使用干净提交构建 Linux 候选包,核对安装后的默认 unit 和动态生成配置,并补充 Linux 专属用例证据。
|
||||
- [!] 暂缓或存在阻塞:历史恢复事务、双服务器真实失败回滚与重试幂等、Smail SMTP、数据库生产矩阵、备份恢复及最终生产门禁仍未完成。
|
||||
|
||||
端口边界:不新增公网业务端口,不为内部 `8443` 添加防火墙或安全组放行规则。SSH 运维端口与其他已有服务不属于本次端口收敛的修改范围。总体验收保持 **P0-03:完成,待复审**,不新增全量验收通过结论。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user