refactor(payment): 支付配置接入统一 secretbox 信封加密
CI / backend (push) Canceled after 0s

- 丢弃支付模块自带的 PAYMENT_SECRET_KEY/JWT_SECRET 派生双密钥体系,
  EncryptSecret/DecryptSecret 直接走 internal/secretbox(OPSLIC_MASTER_KEY)
- 全站只有一把主密钥:Waffo 私钥、节点 shared_key、支付 APIv3 密钥/应用私钥同格式同前缀
- 测试改由 TestMain 装载 secretbox 主密钥,密文前缀统一引用 secretbox.Prefix
- .env.example 移除 PAYMENT_SECRET_KEY,改为说明复用 OPSLIC_MASTER_KEY
This commit is contained in:
Logan.Li committed 2026-11-01 06:03:24 +08:00
1 parent 3a98ccc631
commit b0b611eee2
3 files changed
+26 -138

No files matched your search

+6 -11
View File
@@ -109,20 +109,15 @@ SUCCESS_URL=https://l123.91ai.io/api/v1/purchase/success
# ============================================
# ============================================
# 支付配置加密(后台「支付配置」页 · 微信支付 / 支付宝)
# 支付配置(后台「支付配置」页 · 微信支付 / 支付宝)
# ============================================
# 敏感字段(微信 APIv3 密钥、支付宝应用私钥/公钥)入库前用 AES-256-GCM 加密,
# 主密钥只从环境变量读取,绝不写入数据库或仓库。生成方式二选一:
# openssl rand -hex 32 # 64 位 hex
# openssl rand -base64 32 # 32 字节 base64
# 未设置时系统会退化为用 JWT_SECRET 派生主密钥(可开箱使用,但轮换 JWT_SECRET 会导致
# 已保存的支付密钥无法解密,必须重新填写)——生产环境请显式设置本变量。
# 注意:主密钥一旦更换,已保存的密文全部失效。
# PAYMENT_SECRET_KEY=
# 支付证书/私钥落地目录(容器内数据卷,位于仓库之外);
# 敏感字段(微信 APIv3 密钥、支付宝应用私钥/公钥)不单独设密钥,
# 统一走 internal/secretbox 信封加密,主密钥即上面的 OPSLIC_MASTER_KEY。
# 证书/私钥落地目录(容器内数据卷,位于仓库之外);
# 目录权限 0700、文件 0600,不通过任何静态路由对外暴露。默认 /data/payment-certs
# PAYMENT_CERT_DIR=/data/payment-certs
# 对外基址(用于生成微信/支付宝回调地址展示)
# PAYMENT_PUBLIC_BASE_URL=https://licence.rlwj.cn
# 宿主机映射端口(容器内固定 9001)
HOST_PORT=9001
VERSION=latest