以下是在Debian上配置Nginx SSL证书的详细步骤(以Let’s Encrypt免费证书为例):
1. 安装Nginx和Certbot
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx # 安装Nginx和Certbot工具
2. 获取SSL证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com # 替换为你的域名
Certbot会自动完成验证并配置Nginx,证书文件默认存放在/etc/letsencrypt/live/yourdomain.com/目录。
3. 配置Nginx(可选手动调整)
若需手动修改配置,编辑站点配置文件(通常位于/etc/nginx/sites-available/yourdomain.com):
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;
include /etc/letsencrypt/options-ssl-nginx.conf; # 包含默认安全配置
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 可选:增强安全性
# 其他配置(如根目录、索引文件等)
}
- 关键参数说明:
ssl_certificate:证书文件路径(Certbot自动生成)。ssl_certificate_key:私钥文件路径(Certbot自动生成)。include:引入Let’s Encrypt的默认SSL配置(推荐保留)。
4. 测试并重启Nginx
sudo nginx -t # 测试配置语法是否正确
sudo systemctl restart nginx # 重启生效
5. 设置证书自动续期
Certbot默认会创建定时任务自动续期,可手动测试:
sudo certbot renew --dry-run # 若输出“Congratulations”则配置成功
6. 验证SSL配置
- 通过浏览器访问
https://yourdomain.com,查看证书是否生效。 - 使用命令行工具检查:
curl -I https://yourdomain.com # 应返回HTTP 200状态码
注意事项
- 若使用防火墙(如UFW),需允许HTTPS流量:
sudo ufw allow 'Nginx Full' - 证书有效期为90天,需依赖Certbot自动续期,无需手动操作。
以上步骤参考自,可根据实际需求调整配置。