以下是在Debian上配置Nginx SSL证书的详细步骤(以Let’s Encrypt免费证书为例):
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx # 安装Nginx和Certbot工具
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com # 替换为你的域名
Certbot会自动完成验证并配置Nginx,证书文件默认存放在/etc/letsencrypt/live/yourdomain.com/
目录。
若需手动修改配置,编辑站点配置文件(通常位于/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配置(推荐保留)。sudo nginx -t # 测试配置语法是否正确
sudo systemctl restart nginx # 重启生效
Certbot默认会创建定时任务自动续期,可手动测试:
sudo certbot renew --dry-run # 若输出“Congratulations”则配置成功
https://yourdomain.com
,查看证书是否生效。curl -I https://yourdomain.com # 应返回HTTP 200状态码
sudo ufw allow 'Nginx Full'
以上步骤参考自,可根据实际需求调整配置。