温馨提示×

debian nginx如何 ssl

小樊
54
2026-09-15 17:11:22
栏目: 云计算

在 Debian 上使用 Nginx 配置 SSL,通常分为 获取证书 和 配置 Nginx 两部分。下面以最常见、免费的 Let’s Encrypt(certbot) 为例说明,也会给出自签证书的方式。


一、使用 Let’s Encrypt 免费 SSL(推荐)

1. 安装 Nginx 和 certbot

sudo apt update
sudo apt install nginx certbot python3-certbot-nginx -y

2. 确保域名解析正确

确保你的域名(如 example.com)A 记录已指向服务器公网 IP。

3. 获取并自动配置 SSL

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

按提示输入邮箱、同意协议即可。

certbot 会自动:

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

4. 测试自动续期

sudo certbot renew --dry-run

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

如果你已有证书(fullchain.pem 和 privkey.pem):

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;

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

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

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

server {
    listen 80;
    server_name example.com;

    return 301 https://$host$request_uri;
}

重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

三、自签证书(仅测试用)

sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/ssl/private/nginx.key \
  -out /etc/ssl/certs/nginx.crt

然后按上面的 Nginx 配置修改路径即可。


四、常见问题

  • 防火墙:确保 80 和 443 端口开放
  • 证书路径权限:私钥建议 600
  • Debian 版本:推荐 Debian 11 / 12

如果你需要:

  • 单域名 / 泛域名
  • 反向代理 SSL
  • Docker 中 Nginx + SSL

可以告诉我你的具体场景。

0 踩