温馨提示×

怎样给Debian nginx配SSL

小樊
40
2026-09-02 16:01:12
栏目: 云计算

下面给你一份在 Debian 上给 Nginx 配置 SSL(HTTPS)的常见做法,适用于 Debian 11/12,包括申请证书Nginx 配置两部分。


一、准备工作

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx

sudo apt install nginx -y

3. 域名解析

确保你的域名(如 example.com)已解析到服务器 IP:

ping example.com

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

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

3. 验证自动续期

sudo certbot renew --dry-run

三、手动 Nginx SSL 配置(如果你有自己的证书)

1. 上传证书文件

假设证书位置:

/etc/ssl/example.com/fullchain.pem
/etc/ssl/example.com/privkey.pem

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/ssl/example.com/fullchain.pem;
    ssl_certificate_key /etc/ssl/example.com/privkey.pem;

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

    root /var/www/example.com;
    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. 开启 HSTS

add_header Strict-Transport-Security "max-age=31536000" always;

2. 使用现代 SSL 配置

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

五、常见问题

❌ 证书不生效

  • 检查防火墙是否放行 80 / 443
sudo ufw allow 'Nginx Full'

❌ 浏览器提示不安全

  • 证书路径错误
  • 域名不匹配
  • 时间不正确

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

  • Debian 版本
  • 是否用 Docker
  • 是否已有证书
  • 单域名 / 多域名 / 泛域名

我可以给你更精确的配置模板

0