温馨提示×

debian下nginxssl如何部署

小樊
47
2026-09-14 19:56:40
栏目: 云计算

在 Debian 下使用 Nginx 部署 SSL(HTTPS),通常有两种常见方式:

  1. 使用 Let’s Encrypt 免费证书(推荐,自动化)
  2. 使用自有证书(自签或商业证书)

下面分别说明。


一、准备工作

1. 安装 Nginx

sudo apt update
sudo apt install nginx -y

2. 确保域名解析正确

如果是公网证书(如 Let’s Encrypt),域名必须:

  • 已解析到服务器公网 IP
  • 80 端口可访问

二、使用 Let’s Encrypt 部署 SSL(推荐)

1. 安装 Certbot

sudo apt install certbot python3-certbot-nginx -y

2. 自动申请并配置 SSL

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

按提示操作,Certbot 会自动:

  • 申请证书
  • 修改 Nginx 配置
  • 开启 HTTPS
  • 设置 HTTP 跳转 HTTPS

3. 测试自动续期

sudo certbot renew --dry-run

三、使用自有 SSL 证书部署

1. 上传证书文件

通常包含:

  • example.com.crt(证书)
  • example.com.key(私钥)

放到:

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

2. 配置 Nginx

编辑站点配置:

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

示例配置:

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

server {
    listen 443 ssl;
    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;

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

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

3. 启用站点

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

4. 检查并重载 Nginx

sudo nginx -t
sudo systemctl reload nginx

四、常见问题

1. 防火墙放行

sudo ufw allow 'Nginx Full'

2. 强制 HTTPS

已在上面的配置中用 return 301 实现。

3. 自签证书(仅测试)

openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout example.key -out example.crt

五、推荐做法总结

✅ 公网服务:Let’s Encrypt + Certbot
✅ 内部服务:自签证书
✅ 生产环境:禁用 TLS 1.0 / 1.1

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

  • Debian 版本(11 / 12)
  • 是否用 Docker
  • 域名是否已有

我可以给你更精确的配置。

0