3.3 KiB
3.3 KiB
Scert 服务管理说明
当前 Linux 启动状态与安全边界
本节为当前实现说明。新版本核心服务使用 Type=notify、NotifyAccess=main、TimeoutStartSec=90,仅向 systemd 提供的本机 Unix 数据报套接字发送监听通知,不新增 TCP 端口或防火墙放行规则。
- 正式服务在 HTTPS 接收循环启动、且未观察到本机恢复通道或 HTTP 退出后发送通知;发送失败则终止启动,不启动续期任务。
- 首次初始化在临时 HTTPS 开始接收时发送等待配置状态,避免 systemctl start 等待用户完成整个初始化。此时业务 readyz 仍为 503,不能放行业务验收。
- 没有 NOTIFY_SOCKET 时保持普通命令行启动行为;服务管理器配置通知地址但连接失败时不静默降级。
- active 仅表示完成当前阶段监听启动,不证明数据库、DNS 凭据、证书或 Nginx 上游健康;仍需独立检查 readyz 及严格 HTTPS。
- 单实例停止到重新监听期间仍可能出现代理错误;本修改不是无中断升级机制,不得据此宣称重启零 502。
- 升级必须配套替换新二进制与 unit,并执行 daemon-reload。不得将新 notify unit 单独配给不支持通知的旧程序。
- 主服务保持回环监听,经 Nginx 80/443 对外访问。超级管理员恢复继续使用受保护的本机 IPC,不增加公开恢复 HTTP 路由;后文旧管理激活说明不作为当前恢复方案。
核心服务职责
Scert 是证书管理核心服务,负责 Web 管理接口、证书任务、数据库访问和后续的申请、续期、部署与校验流程。服务运行用户为 Scert,默认工作目录为 /scert。
安装阶段
Linux 安装器安装二进制文件、目录和两个 systemd unit,并执行一次:
systemctl daemon-reload
安装器不会在初始化配置完成前启动核心服务,也不会启用 Scert-admin。
日常服务控制
核心服务不注册公网密码重置路由,/reset 和 /password-reset 只显示安全阻断提示,不查询账户、不发送验证码、不接收新密码,也不创建公网重置会话。Scert-admin 不监听独立端口,也不能作为核心服务的自动启动依赖。
超级管理员重置只能由部署主机上的运维人员在提升权限的本机终端中显式启动 Scert-admin,通过受保护的 Unix Socket 或 Windows Named Pipe 与核心服务通信。验证码由系统通知账户发送到已绑定邮箱,新密码只在本机终端输入,不写入参数、环境变量、文件或服务日志。
云安全组和本机防火墙不需要为密码重置额外放行端口;公网入口继续只使用 Nginx 的 80/443。完成操作后停止 Scert-admin,本机重置会话随即关闭。
默认目录
/scert 安装目录
/scert/web Web 管理页面静态资源
/scert/conf 配置目录
/scert/data 数据目录
/scert/log 日志目录
/scert/backups 备份目录
/ssl/scert 默认证书根目录
安全要求
- 核心服务使用
Scert用户运行。 - 配置目录仅允许服务用户和 root 管理。
- 证书私钥由服务用户生成和使用,Linux 权限应保持为
0600;root 仍可进行系统级管理。 - 安装、升级和卸载不得删除用户证书、数据库和备份。