以下是在Debian上部署Nginx SSL的步骤(以Let’s Encrypt免费证书为例):
-
安装Nginx
sudo apt update sudo apt install nginx -
获取SSL证书
- Let’s Encrypt(推荐):
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com按提示完成域名验证,证书会自动存放在
/etc/letsencrypt/live/yourdomain.com/。
- Let’s Encrypt(推荐):
-
配置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确认证书生效(需显示安全锁标志)。 - 自动续签:Let’s Encrypt证书需定期续签,可通过以下命令测试:
sudo certbot renew --dry-run并添加cron任务实现自动续签(如每天凌晨2点执行)。
- 浏览器访问:通过
可选步骤:
- 配置防火墙允许443端口:
sudo ufw allow 'Nginx Full'。 - 启用HTTP/2:在
server块中添加http2 on;。
注:若使用自签名证书,需手动合并证书链(若有中间证书),并注意浏览器会提示“不安全”(仅适用于测试环境)。