feat: 支持 MySQL 公网 TLS CA 校验 (#86)
This commit is contained in:
@@ -174,13 +174,20 @@ database:
|
||||
port: "3307"
|
||||
name: autobuy
|
||||
user: buy
|
||||
tls_mode: disabled
|
||||
tls_ca: certs/mysql84-ca.pem
|
||||
password: "从安全渠道取得"
|
||||
```
|
||||
|
||||
Admin 本地开发连接线上 MySQL 时默认仍通过 SSH 隧道,把 `port` 改为隧道的本地
|
||||
端口。数据库客户端确需公网直连时,只能在项目负责人明确批准后采用固定 `/32`
|
||||
来源白名单、来源限定账号、最小权限和强制 SSL,绝不能向全网开放。线上 systemd
|
||||
部署继续使用环境变量:
|
||||
来源白名单、来源限定账号、最小权限和强制 SSL,绝不能向全网开放。
|
||||
|
||||
- 同机或 SSH 隧道:`tls_mode: disabled`;
|
||||
- 公网直连:`tls_mode: verify_ca`,`tls_ca` 指向服务器公开 CA。客户端要求 TLS 1.2+
|
||||
并校验证书链,失败时不会回退明文。CA 证书可以公开,私钥绝不能复制到客户端。
|
||||
|
||||
线上 systemd 部署继续使用环境变量:
|
||||
|
||||
```text
|
||||
CMAUTOBUY_DB_HOST=127.0.0.1
|
||||
@@ -188,11 +195,13 @@ CMAUTOBUY_DB_PORT=3307
|
||||
CMAUTOBUY_DB_NAME=<独立数据库名>
|
||||
CMAUTOBUY_DB_USER=<最小权限账号>
|
||||
CMAUTOBUY_DB_PASSWORD=<从安全渠道取得>
|
||||
CMAUTOBUY_DB_TLS_MODE=disabled
|
||||
CMAUTOBUY_DB_TLS_CA=<verify_ca 模式下的 CA 路径>
|
||||
```
|
||||
|
||||
环境变量按字段覆盖 `config.yaml`,所以现有线上部署方式不受影响。生产环境文件和
|
||||
本地 `config.yaml` 都不得进入仓库、日志或工单;线上 MySQL 只监听本机,本地开发
|
||||
通过 SSH 隧道连接独立的 `_test` 数据库。
|
||||
本地 `config.yaml` 都不得进入仓库、日志或工单;本地自动化测试仍通过 SSH 隧道
|
||||
连接独立的 `_test` 数据库,不得对生产 `autobuy` 执行清理测试。
|
||||
|
||||
程序旁边的 `data/` 只保留日志、上传文件和迁移前的 SQLite 只读备份:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user