SSL_CONFIG.md 1.9 KB

SSL证书配置指南

环境变量配置

在 backend/ 目录创建 .env 文件(不会提交到git):

生产环境配置

# 使用生产证书
SSL_KEYFILE=/etc/nginx/cert/www.hikelly.chat.key
SSL_CERTFILE=/etc/nginx/cert/www.hikelly.chat.pem

# 其他必需配置
DASHSCOPE_API_KEY=your_api_key
DOUBAO_API_KEY=your_api_key
DOUBAO_APP_ID=your_app_id

开发环境配置

# 留空或不配置,使用本地 ssl/ 目录的自签名证书
SSL_KEYFILE=
SSL_CERTFILE=

# 或者完全不设置这两个变量

证书文件权限

生产环境确保后端进程有读取证书的权限:

# 检查证书文件权限
ls -l /etc/nginx/cert/www.hikelly.chat.*

# 如需调整(谨慎操作)
sudo chmod 644 /etc/nginx/cert/www.hikelly.chat.pem
sudo chmod 600 /etc/nginx/cert/www.hikelly.chat.key

启动服务

cd backend
python main.py

启动时会显示使用的证书路径。

优先级

  1. 优先使用环境变量 SSL_KEYFILE 和 SSL_CERTFILE(生产)
  2. 未配置则使用 ssl/key.pem 和 ssl/cert.pem(开发)
  3. 证书不存在则以HTTP模式启动

Nginx配置(可选)

生产环境建议使用Nginx反向代理:

server {
    listen 443 ssl;
    server_name www.hikelly.chat;
    
    ssl_certificate /etc/nginx/cert/www.hikelly.chat.pem;
    ssl_certificate_key /etc/nginx/cert/www.hikelly.chat.key;
    
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

使用Nginx时,后端可以不配置SSL,直接HTTP运行。