NAC_Blockchain/docs_center/nac-admin/ops/secrets.md

2.1 KiB
Raw Blame History

密钥管理说明

密钥文件路径/opt/nac/services/nac-admin/.env

必要密钥列表

环境变量 说明 示例值
NAC_MYSQL_URL MySQL 连接字符串nac_id 数据库) mysql://root:password@localhost:3306/nac_id
NAC_MONGO_URL MongoDB 连接字符串(知识引擎数据库) mongodb://root:password@localhost:27017/nac_knowledge_engine?authSource=admin
NAC_JWT_SECRET JWT 签名密钥至少32位随机字符串 <随机生成>

.env 文件格式

NAC_MYSQL_URL=mysql://root:vaingkvf@localhost:3306/nac_id
NAC_MONGO_URL=mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin
NAC_JWT_SECRET=<生产环境随机密钥>

密钥管理最佳实践

  1. 不要将密钥写入 systemd 服务文件的 Environment=,应使用 EnvironmentFile= 指向 .env 文件
  2. .env 文件权限应设置为 600(仅 root 可读):chmod 600 /opt/nac/services/nac-admin/.env
  3. 定期轮换 JWT_SECRET每90天更换一次更换后需要重启服务所有用户需重新登录
  4. MongoDB 密码:使用宝塔面板数据库管理界面修改,修改后同步更新 .env 文件
  5. MySQL 密码:使用宝塔面板数据库管理界面修改,修改后同步更新 .env 文件

密钥迁移步骤(从 systemd 内联迁移到 .env 文件)

# 1. 创建 .env 文件
cat > /opt/nac/services/nac-admin/.env << 'EOF'
NAC_MYSQL_URL=mysql://root:vaingkvf@localhost:3306/nac_id
NAC_MONGO_URL=mongodb://root:idP0ZaRGyLsTUA3a@localhost:27017/nac_knowledge_engine?authSource=admin
NAC_JWT_SECRET=<生产环境随机密钥>
EOF

# 2. 设置文件权限
chmod 600 /opt/nac/services/nac-admin/.env
chown root:root /opt/nac/services/nac-admin/.env

# 3. 修改 systemd 服务文件,移除内联密钥,添加 EnvironmentFile
# 编辑 /etc/systemd/system/nac-admin.service
# 删除所有 Environment=NAC_* 行
# 添加 EnvironmentFile=/opt/nac/services/nac-admin/.env

# 4. 重载并重启
systemctl daemon-reload
systemctl restart nac-admin

# 5. 验证服务正常
systemctl status nac-admin