以下是在Debian上部署Nginx SSL的步骤(以Let’s Encrypt免费证书为例):
安装Nginx
sudo apt update
sudo apt install nginx
获取SSL证书
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按提示完成域名验证,证书会自动存放在/etc/letsencrypt/live/yourdomain.com/。配置Nginx
/etc/nginx/sites-available/yourdomain.com.conf):server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri; # 强制HTTP跳转HTTPS
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html;
}
}
启用配置并重启Nginx
sudo ln -s /etc/nginx/sites-available/yourdomain.com.conf /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置语法
sudo systemctl reload nginx
验证与优化
https://yourdomain.com确认证书生效(需显示安全锁标志)。sudo certbot renew --dry-run
并添加cron任务实现自动续签(如每天凌晨2点执行)。可选步骤:
sudo ufw allow 'Nginx Full'。server块中添加http2 on;。注:若使用自签名证书,需手动合并证书链(若有中间证书),并注意浏览器会提示“不安全”(仅适用于测试环境)。