根据您的Nginx配置:
cd ssl
openssl req -x509 -newkey rsa:4096 -nodes \
-out cert.pem -keyout key.pem -days 365 \
-config openssl.cnf -extensions v3_req
# 后端
cd backend
python main.py
# 前端
cd frontend
npm run dev
后端配置 (backend/.env):
SSL_KEYFILE=/etc/nginx/cert/www.hikelly.chat.key
SSL_CERTFILE=/etc/nginx/cert/www.hikelly.chat.pem
前端配置 (frontend/.env):
VITE_SSL_KEYFILE=/etc/nginx/cert/www.hikelly.chat.key
VITE_SSL_CERTFILE=/etc/nginx/cert/www.hikelly.chat.pem
前后端都不配置SSL,证书统一由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 / {
root /path/to/Tolan/frontend/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# 后端API
location /api/ {
proxy_pass http://127.0.0.1:8000;
}
# WebSocket
location /ws {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# 检查证书文件
ls -l /etc/nginx/cert/www.hikelly.chat.*
# 证书应该是 644
# 私钥应该是 600 或 400
sudo chmod 644 /etc/nginx/cert/www.hikelly.chat.pem
sudo chmod 600 /etc/nginx/cert/www.hikelly.chat.key
开发环境:
生产环境:
backend/SSL_CONFIG.mdfrontend/SSL_CONFIG.mdssl/README.md