温馨提示×

如何给debian配nginxssl

小樊
38
2026-09-14 20:00:40
栏目: 云计算

下面按最常见的场景给你一个清晰、可操作的 Debian + Nginx 配置 SSL 教程(以 Debian 11/12 为例,使用 Let’s Encrypt 免费证书)。


一、前提条件

  1. 已安装 Debian
  2. 已安装 Nginx
  3. 有一个域名(如 example.com
  4. 域名已解析到服务器公网 IP
  5. 服务器 80 / 443 端口可访问

二、安装 Nginx(如果还没装)

sudo apt update
sudo apt install nginx -y

启动并设置开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

三、安装 Certbot(Let’s Encrypt 工具)

sudo apt install certbot python3-certbot-nginx -y

四、申请 SSL 证书(自动配置 Nginx)

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

⚠️ 把 example.com 换成你的真实域名

过程中会:

  • 自动验证域名
  • 自动申请证书
  • 自动修改 Nginx 配置启用 HTTPS

五、验证 Nginx SSL 配置

Certbot 会生成类似:

server {
    listen 443 ssl;
    server_name example.com;

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

访问:

https://example.com

六、设置 HTTP 自动跳转 HTTPS

Certbot 通常已自动添加:

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

如没有,可手动加。


七、自动续期证书

测试续期:

sudo certbot renew --dry-run

Certbot 已通过 systemd timer 自动续期,无需手动操作。


八、手动配置 SSL(不使用 Certbot 自动模式)

如果你已有证书:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;

    location / {
        root /var/www/html;
        index index.html;
    }
}

九、安全加固(推荐)

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

十、常见问题

1. 证书申请失败

  • 检查 DNS 是否正确
  • 检查 80 端口是否开放
  • 检查 nginx 是否运行

2. 证书位置

/etc/letsencrypt/live/你的域名/

如果你需要:

  • 自签证书
  • 多域名 / 泛域名
  • Docker 中的 Nginx
  • 反向代理 SSL

可以告诉我你的具体使用场景,我可以直接给你对应配置。

0