1. 准备 SSL 证书文件
确保您有以下文件:
SSL 证书文件(通常是 .crt 或 .pem 文件)
私钥文件(通常是 .key 文件)
中间证书文件(如果适用,通常是 .crt 或 .pem 文件)
将这些文件上传到服务器上的一个安全目录,例如 /etc/nginx/ssl:
sudo mkdir -p /etc/nginx/ssl
sudo cp your_certificate.crt /etc/nginx/ssl/
sudo cp your_private.key /etc/nginx/ssl/
sudo cp your_intermediate.crt /etc/nginx/ssl/ # 如果适用
2. 配置 Nginx
sudo nano /etc/nginx/sites-available/your_site
添加或修改以下内容以启用 SSL:
server {listen 80;server_name your_domain.com www.your_domain.com;return 301 https://$host$request_uri;
}server {listen 443 ssl;server_name your_domain.com www.your_domain.com;ssl_certificate /etc/nginx/ssl/your_certificate.crt;ssl_certificate_key /etc/nginx/ssl/your_private.key;# 如果有中间证书,请添加以下行ssl_trusted_certificate /etc/nginx/ssl/your_intermediate.crt;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';ssl_prefer_server_ciphers on;# 为了安全性,您可以添加其他 SSL 配置,例如 HSTSadd_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;location / {include uwsgi_params;uwsgi_pass unix:/path/to/your/project.sock;}location /static/ {alias /path/to/your/project/static/;}
}
3. 启用新站点配置
创建一个符号链接,以启用该配置:
sudo ln -s /etc/nginx/sites-available/your_site /etc/nginx/sites-enabled/
4. 测试 Nginx 配置
在重新加载 Nginx 之前,测试配置文件是否正确:
sudo nginx -t
5. 重启 Nginx
如果配置文件测试通过,重启 Nginx 以应用更改:
sudo systemctl restart nginx
6. 设置防火墙
确保防火墙允许 HTTP 和 HTTPS 流量:
sudo ufw allow 'Nginx Full'
sudo ufw enable