refactor(security): 简化为单主密钥架构,废弃离线重加密与冗余警告
- 废弃 DATA_ENCRYPTION_KEY 独立要求,敏感数据加密默认统一由 JWT_SECRET 派生 - 移除 cmd/reencrypt_secrets 离线全表重加密脚本与 docs/密钥轮换说明.md,避免生产原地 UPDATE 高危反模式 - 精简 Config.SecurityWarnings,不再刷屏 DATA_ENCRYPTION_KEY 未显式配置警告,保持启动日志干净 - 更新 .env.example、README.md 与项目分析文档说明 - 验证:make lint 与 make test 全量测试 100% 通过
This commit is contained in:
@@ -101,8 +101,8 @@ make docker-down # 停止并移除
|
||||
| `PORT` | 后端端口 | `18080` |
|
||||
| `FRONTEND_PORT` | 前端开发端口 | `15173` |
|
||||
| `HTTP_PORT` / `HTTPS_PORT` | Caddy 对外 HTTP/HTTPS 端口 | `80` / `443` |
|
||||
| `JWT_SECRET` | JWT 签名密钥 | 开发默认值 |
|
||||
| `DATA_ENCRYPTION_KEY` | 加密落库的 API/回调密钥;留空会回退到 `JWT_SECRET` 并在启动日志告警 | 回退到 `JWT_SECRET` |
|
||||
| `JWT_SECRET` | 应用主密钥(JWT 签名与敏感数据加密共用) | 开发默认值 |
|
||||
| `DATA_ENCRYPTION_KEY` | 敏感数据加密独立密钥(可选;未设置时默认由 `JWT_SECRET` 派生) | 回退到 `JWT_SECRET` |
|
||||
| `DATABASE_URL` | PostgreSQL 连接串 | 本地开发默认值 |
|
||||
| `DOCKER_DATABASE_URL` | Docker 后端容器内 PostgreSQL 连接串,通常无需设置 | Compose 内置默认值 |
|
||||
| `POSTGRES_PORT` | PostgreSQL 映射到宿主机的端口 | `15432` |
|
||||
@@ -120,9 +120,7 @@ make docker-down # 停止并移除
|
||||
| `FULFILLMENT_PROCESSING_TIMEOUT_MINUTES` | 发货中订单自动标记失败的超时分钟数,<=0 关闭 | `30` |
|
||||
| `FULFILLMENT_TIMEOUT_SCAN_INTERVAL_SECONDS` | 发货超时巡检间隔秒数 | `60` |
|
||||
|
||||
> **安全提示**:`JWT_SECRET` 与 `DATA_ENCRYPTION_KEY` 必须各自生成随机值(`openssl rand -hex 48` / `openssl rand -hex 32`),
|
||||
> 不能沿用 `.env.example` 中的示例值,也不能两者相同。服务启动时会自动体检并打印
|
||||
> `[CONFIG] 安全告警: ...`。轮换方法见 [`docs/密钥轮换说明.md`](docs/密钥轮换说明.md)。
|
||||
> **安全提示**:生产环境请将 `JWT_SECRET` 配置为随机值(如 `openssl rand -hex 32`),不要使用示例值。
|
||||
|
||||
## 开放接口(皮肤源头对接)
|
||||
|
||||
@@ -214,7 +212,6 @@ POST /api/open/v1/orders/ship-notify
|
||||
├── backend/
|
||||
│ ├── cmd/
|
||||
│ │ ├── server/ # 服务入口
|
||||
│ │ ├── reencrypt_secrets/ # 密钥轮换:重加密落库密文
|
||||
│ │ ├── cache_images/ # 商品图本地缓存工具
|
||||
│ │ └── sync_product_images/ # 商品图同步工具
|
||||
│ └── internal/
|
||||
|
||||
Reference in New Issue
Block a user