温馨提示×

如何给Debian nginx配证书

小樊
52
2026-09-12 11:05:35
栏目: 智能运维

下面以 Debian + Nginx 为例,给你讲 最常见的几种证书配置方式,从简单到生产级。


一、最推荐(生产环境):使用 Let’s Encrypt 免费证书

1. 安装 Certbot

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

2. 自动申请并配置证书

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

✅ Certbot 会自动:

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

3. 自动续期测试

sudo certbot renew --dry-run

Certbot 默认会通过 systemd timer 自动续期。


二、手动配置已有证书(CA / 自建 / 商业证书)

假设你有:

  • 证书:/etc/nginx/ssl/example.com.crt
  • 私钥:/etc/nginx/ssl/example.com.key

1. 修改 Nginx 站点配置

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

2. HTTP 跳转 HTTPS

server {
    listen 80;
    server_name example.com;

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

3. 检查并重载

sudo nginx -t
sudo systemctl reload nginx

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

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

然后按 方式二 配置即可(浏览器会警告,属正常)。


四、常见坑提醒 ⚠️

  1. 私钥权限
sudo chmod 600 /etc/nginx/ssl/*.key
  1. 证书链不完整
  • 商业证书通常要合并:
cat example.com.crt ca_bundle.crt > fullchain.crt
  1. 防火墙
sudo ufw allow 80,443/tcp

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

  • Debian 版本(11 / 12)
  • Nginx 是否已安装
  • 域名是否能解析到服务器

我可以直接帮你写一份 可直接用的 Nginx 配置

0