温馨提示×

Debian Nginx SSL怎么部署

小樊
53
2026-08-03 00:22:20
栏目: 云计算

下面给你一个**在 Debian 系统上部署 Nginx + SSL(HTTPS)**的完整、常用、可落地方案,适合生产环境。


一、环境准备

1️⃣ 系统

  • Debian 10 / 11 / 12(示例以 Debian 11 为例)

2️⃣ 确保域名已解析

example.com
www.example.com

指向你的服务器公网 IP


二、安装 Nginx

sudo apt update
sudo apt install -y nginx

启动并设置开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

测试:

curl http://服务器IP

三、申请 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

✅ 过程中会:

  • 自动验证域名
  • 下载证书
  • 自动修改 Nginx 配置
  • 自动配置 HTTP → HTTPS 跳转

⚠️ 如果自动配置失败,可手动配置(见下文)


3️⃣ 证书位置(了解即可)

/etc/letsencrypt/live/example.com/
├── fullchain.pem
├── privkey.pem

四、手动配置 Nginx SSL(备用方案)

1️⃣ 创建网站配置

sudo nano /etc/nginx/sites-available/example.com

2️⃣ 示例配置(推荐)

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

server {
    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

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

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

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

3️⃣ 启用配置

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

五、自动续期(非常重要)

Let’s Encrypt 证书 90 天有效期

测试续期

sudo certbot renew --dry-run

自动续期

Certbot 已自动添加 cron / systemd timer:

sudo systemctl status certbot.timer

✅ 正常情况下无需手动操作


六、防火墙(如启用 UFW)

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

七、常见问题排查

❌ 443 端口无法访问

sudo ss -lntp | grep 443

检查:

  • 云服务器安全组
  • 防火墙
  • Nginx 是否监听 443

❌ Certbot 验证失败

✅ 原因通常是:

  • 域名未解析
  • 80 端口被占用
  • Nginx 配置 server_name 不对

八、进阶(可选)

  • ✅ HTTP/2 支持(已包含)
  • ✅ HSTS 安全头
  • ✅ SSL Labs A+ 评分
  • ✅ 多域名 / 泛域名证书
  • ✅ Nginx + Docker 部署

如果你愿意,可以告诉我:

  • Debian 版本
  • 是否用 Docker
  • 是否要部署网站 / API / 反向代理
  • 是否已有证书

我可以给你完全定制化的配置

0