温馨提示×

debian nginxssl证书怎么弄

小樊
44
2026-09-29 20:35:01
栏目: 云计算

在 Debian 上给 Nginx 配置 SSL 证书,一般有三种常见方式:自签名证书(测试用)、Let’s Encrypt 免费证书(生产推荐)、商业/第三方证书。下面按最快上手的顺序给你讲。


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

1. 安装必要软件

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

2. 确保域名已解析

  • 你的域名(如 example.com)必须 A 记录指向该服务器公网 IP
  • 确保 80 端口可访问

3. 申请并自动配置 SSL

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

按提示选择:

  • 是否重定向 HTTP → HTTPS(建议选 2)

4. 自动续期测试

sudo certbot renew --dry-run

✅ 完成后:

  • 证书位置:/etc/letsencrypt/live/example.com/
  • Nginx 已自动配置好 HTTPS

二、自签名证书(仅测试 / 内网)

1. 生成私钥和证书

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

2. 配置 Nginx

server {
    listen 443 ssl;
    server_name example.com;

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

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

3. 重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

⚠️ 浏览器会提示“不安全”,这是正常的


三、使用已有 SSL 证书(商业证书)

假设你有:

  • example.com.crt
  • example.com.key

1. 上传证书

sudo cp example.com.crt /etc/ssl/certs/
sudo cp example.com.key /etc/ssl/private/

2. Nginx 配置

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/ssl/certs/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;

    location / {
        proxy_pass http://localhost:3000;
    }
}

四、常用检查命令

nginx -t                 # 检查配置
systemctl status nginx   # 查看状态
ufw allow 'Nginx Full'   # 开放 80/443

五、建议的安全配置(可选)

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

如果你告诉我:

  • 是 公网还是内网
  • 用的 域名还是 IP
  • 是否 已有证书

我可以直接给你一份完整的 Nginx 配置。

0 踩