安全性配置

确保您的 GPT-Load 部署安全可靠,遵循最佳安全实践

安全概述

GPT-Load 提供多层安全防护机制,包括身份验证、数据加密、访问控制等功能。正确配置这些安全设置对保护您的 AI 服务至关重要。

AUTH_KEY 认证密钥

AUTH_KEY 是访问 GPT-Load 管理界面的身份验证密钥。它必须设置为强密码以保护您的系统。

建议使用至少 32 个字符的随机密钥,包含大小写字母、数字和特殊字符,避免使用常见词汇或简单模式。

生成安全密钥

使用以下命令生成强随机密钥:

openssl rand -base64 32 | tr -d "=+/" | cut -c1-32

ENCRYPTION_KEY 数据加密

ENCRYPTION_KEY 用于加密存储敏感数据(如 API 密钥)。启用加密可以防止数据库泄露时密钥被直接获取。

启用加密的好处

  • API 密钥在数据库中加密存储,即使数据库泄露也无法直接使用
  • 符合企业安全合规要求
  • 支持密钥轮换和重新加密
  • 零性能影响的透明加解密

数据加密迁移步骤

1

停止服务

执行迁移前必须停止 GPT-Load 服务

docker compose down
2

备份数据

必须备份数据库!根据您使用的数据库类型(SQLite、MySQL、PostgreSQL)执行相应的备份操作。避免操作失误导致数据丢失。

3

执行迁移命令

根据您的部署方式选择相应的命令(详见下方不同部署方式的迁移命令)

4

更新配置

在 .env 文件中设置 ENCRYPTION_KEY

echo "ENCRYPTION_KEY=your-32-char-secret-key" >> .env
5

重启服务

启动服务并验证加密功能

docker compose up -d

不同部署方式的迁移命令

Docker Compose 部署

适用于使用 Docker Compose 部署的用户

启用加密:

docker compose run --rm gpt-load migrate-keys --to "your-32-char-secret-key"

禁用加密:

docker compose run --rm gpt-load migrate-keys --from "your-current-key"

更换密钥:

docker compose run --rm gpt-load migrate-keys --from "old-key" --to "new-key"

源码部署(Make)

适用于从源码编译部署的用户

启用加密:

make migrate-keys ARGS="--to your-32-char-secret-key"

禁用加密:

make migrate-keys ARGS="--from your-current-key"

更换密钥:

make migrate-keys ARGS="--from old-key --to new-key"

二进制部署

适用于使用编译后二进制文件的用户

启用加密:

./gpt-load migrate-keys --to "your-32-char-secret-key"

禁用加密:

./gpt-load migrate-keys --from "your-current-key"

更换密钥:

./gpt-load migrate-keys --from "old-key" --to "new-key"

⚠️ 极其重要的安全警告

ENCRYPTION_KEY 一旦丢失,所有加密的 API 密钥数据将永久无法解密!

  • ⚠️所有存储的 API 密钥将无法使用
  • ⚠️系统将完全不可用
  • ⚠️加密数据无法恢复,即使有数据库备份也无法解密
  • ⚠️必须重新添加所有 API 密钥
  • ⚠️可能导致服务中断和业务损失

🔑 请务必将 ENCRYPTION_KEY 保存在多个安全的地方,定期检查备份的有效性!

重要提醒

  • 迁移前必须停止服务,避免数据不一致
  • 务必备份数据库以防迁移失败
  • 确保 ENCRYPTION_KEY 与迁移命令中的密钥一致
  • 密钥丢失将无法恢复加密数据

安全最佳实践

定期更换密钥

建议每3-6个月更换一次 AUTH_KEY,确保系统安全

使用环境变量

避免在代码或配置文件中硬编码密钥,使用环境变量管理

启用 HTTPS

生产环境务必使用 HTTPS 协议,防止中间人攻击

限制访问 IP

通过防火墙或反向代理限制管理界面的访问 IP

监控异常登录

定期查看登录日志,及时发现异常访问行为

备份加密密钥

安全地备份 ENCRYPTION_KEY,避免密钥丢失导致数据无法恢复

更多资源

了解更多关于 GPT-Load 安全配置的信息