温馨提示×

怎样给debian配nginxssl

小樊
34
2026-10-20 05:52:30
栏目: 云计算

下面按最常见的场景给你一份 Debian + Nginx + SSL 的实用配置教程(以 Let’s Encrypt 免费证书 为主,也会补充自签证书)。


一、准备工作

1. 系统更新

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx

sudo apt install nginx -y

3. 域名解析(非常重要)

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

example.com  A  你的服务器IP
www.example.com A  你的服务器IP

二、使用 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

按提示:

  • 输入邮箱
  • 同意条款
  • 是否重定向 HTTP → HTTPS(选 2 推荐)

✅ Certbot 会自动:

  • 申请证书
  • 修改 Nginx 配置
  • 开启 443 端口

三、Nginx SSL 配置示例(手动)

如果你手动配置,核心内容如下:

server {
    listen 80;
    server_name example.com www.example.com;

    # 强制跳转 HTTPS
    return 301 https://$host$request_uri;
}

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

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

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

测试并重启:

sudo nginx -t
sudo systemctl restart nginx

四、自动续期 SSL 证书

Let’s Encrypt 证书 90 天有效,但 Certbot 已自动配置:

sudo certbot renew --dry-run

实际由 systemd timer 自动执行。


五、防火墙(如开启)

sudo ufw allow 'Nginx Full'

六、自签证书(测试用,不推荐生产)

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

Nginx 中:

ssl_certificate /etc/ssl/certs/nginx.crt;
ssl_certificate_key /etc/ssl/private/nginx.key;

⚠️ 浏览器会提示不安全。


七、常见问题

1. 443 端口不通

  • 检查云服务器安全组
  • 检查 ufw
  • netstat -tulnp | grep 443

2. 证书不生效

  • 域名未解析
  • Nginx 未重启
  • 配置路径错误

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

  • Debian 版本(11 / 12)
  • 是否用 Docker
  • 是否是内网 / 公网
  • 单域名还是多站点

我可以直接给你定制配置。

0 踩