阅读量:1
Nginx在Debian上的SSL设置步骤(以Let’s Encrypt为例)
1. 安装Nginx
若未安装Nginx,通过以下命令安装:
sudo apt update
sudo apt install nginx
安装完成后,Nginx会自动启动,可通过systemctl status nginx验证状态。
2. 获取SSL证书(推荐使用Certbot自动化工具)
Let’s Encrypt提供免费SSL证书,通过Certbot可简化申请与自动续期流程:
- 安装Certbot及Nginx插件:
sudo apt install certbot python3-certbot-nginx - 获取证书:
运行以下命令,替换yourdomain.com和www.yourdomain.com为你的实际域名:
Certbot会自动验证域名所有权,配置Nginx,并提示输入电子邮件(用于续期提醒)及是否开启自动跳转HTTPS。sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
3. 验证Certbot自动配置(可选)
Certbot通常会自动修改Nginx配置文件(位于/etc/nginx/sites-available/yourdomain.com),核心配置如下:
- HTTP监听80端口:强制跳转至HTTPS;
- HTTPS监听443端口:指定证书路径(
fullchain.pem为证书链,privkey.pem为私钥)。
若需手动调整,可编辑对应配置文件,但Certbot的自动配置已满足基本需求。
4. 手动配置SSL(若未使用Certbot)
若选择手动配置,需完成以下步骤:
- 准备证书文件:将获取的证书(
.crt)、私钥(.key)及中间证书(若有)上传至服务器,建议存放于/etc/ssl/certs/(证书)和/etc/ssl/private/(私钥)目录; - 编辑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/ssl/certs/yourdomain.com.crt; ssl_certificate_key /etc/ssl/private/yourdomain.com.key; # 加密配置(推荐) ssl_protocols TLSv1.2 TLSv1.3; # 仅启用TLS 1.2及以上版本 ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384'; # 高强度加密套件 ssl_prefer_server_ciphers on; # 优先使用服务器端加密套件 # 可选安全增强 ssl_trusted_certificate /etc/ssl/certs/chain.pem; # 中间证书(若有) add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; # 启用HSTS # 网站根目录 root /var/www/yourdomain.com; index index.html index.htm; } - 启用配置:
创建符号链接至sites-enabled目录:sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
5. 测试与重启Nginx
- 测试配置语法:
运行以下命令,确保无语法错误:
若输出sudo nginx -tSyntax OK,则继续下一步;若有错误,根据提示修改配置文件。 - 重启Nginx:
应用配置变更:
或重新加载(不中断现有连接):sudo systemctl restart nginxsudo systemctl reload nginx
6. 验证SSL有效性
- 浏览器访问:
在浏览器输入https://yourdomain.com,确认地址栏显示锁图标(表示HTTPS连接成功); - 命令行验证:
使用curl命令检查SSL握手:
若返回curl -I https://yourdomain.comHTTP/2 200,则表示SSL配置生效。
7. 设置证书自动续期(Let’s Encrypt专用)
Let’s Encrypt证书有效期为90天,Certbot会自动创建cron任务续期,但需验证续期流程:
- 测试续期:
运行以下命令(模拟续期):
若输出sudo certbot renew --dry-runCongratulations, all renewals succeeded,则表示续期正常; - 自动重载Nginx:
若续期成功,Certbot会自动触发Nginx重载(通过--post-hook "systemctl reload nginx"),无需手动操作。
通过以上步骤,即可在Debian系统上为Nginx成功配置SSL证书,实现HTTPS安全访问。
以上就是关于“Nginx在Debian上SSL设置步骤”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm