下面给你一份在 Debian 上给 Nginx 配置 SSL(HTTPS)的常见做法,适用于 Debian 11/12,包括申请证书和Nginx 配置两部分。
sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y
确保你的域名(如 example.com)已解析到服务器 IP:
ping example.com
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
按提示输入邮箱、同意协议即可
certbot 会自动修改 Nginx 配置并启用 HTTPS
sudo certbot renew --dry-run
假设证书位置:
/etc/ssl/example.com/fullchain.pem
/etc/ssl/example.com/privkey.pem
sudo nano /etc/nginx/sites-available/example.com
示例配置:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
add_header Strict-Transport-Security "max-age=31536000" always;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
sudo ufw allow 'Nginx Full'
如果你愿意,可以告诉我:
我可以给你更精确的配置模板。