温馨提示×

Debian下Nginx怎样配置SSL

小樊
43
2026-08-20 13:41:33
栏目: 云计算

Debian 下为 Nginx 配置 SSL(HTTPS),通常分为 申请证书配置 Nginx 两部分。下面给你一个从零到可用的完整流程,适用于 Debian 10/11/12


一、准备条件

  • 已安装 Nginx
  • 已有一个域名(如 example.com
  • 域名已解析到服务器公网 IP
  • 服务器 80 / 443 端口已放行

二、安装 Nginx(如未安装)

sudo apt update
sudo apt install -y nginx

三、申请 SSL 证书(推荐 Let’s Encrypt)

1️⃣ 安装 Certbot

sudo apt install -y certbot python3-certbot-nginx

2️⃣ 申请证书并自动配置 Nginx

sudo certbot --nginx -d example.com -d www.example.com

✅ Certbot 会:

  • 自动验证域名
  • 申请证书
  • 修改 Nginx 配置
  • 自动配置 HTTPS

申请完成后访问:

https://example.com

四、Nginx SSL 配置示例(手动方式)

如果你使用 自定义证书 或想手动配置,可参考下面内容。

1️⃣ 证书文件位置

通常放在:

/etc/nginx/ssl/

例如:

/etc/nginx/ssl/example.com.crt
/etc/nginx/ssl/example.com.key

2️⃣ Nginx HTTPS 配置示例

编辑站点配置:

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate     /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    root /var/www/html;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

3️⃣ HTTP 自动跳转 HTTPS(推荐)

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

五、测试并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

六、自动续期(Let’s Encrypt)

Certbot 已自动添加定时任务,可手动测试:

sudo certbot renew --dry-run

证书有效期:90 天


七、常见问题排查

❌ 443 端口未监听

ss -lntp | grep 443

❌ 证书路径错误

sudo nginx -t

❌ 防火墙未放行

sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

八、进阶优化(可选)

  • 开启 HSTS
  • 使用 HTTP/2
  • 配置 OCSP Stapling
  • 使用 SSL Labs 测试
    https://www.ssllabs.com/ssltest/
    

如果你愿意,我可以: ✅ 给你 生产级 Nginx SSL 配置模板
✅ 帮你 排查证书报错
✅ 配置 多域名 / 泛域名 SSL

直接把你的 Debian 版本 + Nginx 版本 + 报错信息 发我即可。

0