温馨提示×

怎样给debian nginx加ssl

小樊
44
2026-09-26 21:06:41
栏目: 云计算

下面给你一套**在 Debian 上为 Nginx 配置 SSL(HTTPS)**的常用做法,从“最简单”到“生产推荐”都涵盖。


一、准备环境

1. 安装 Nginx(如果还没装)

sudo apt update
sudo apt install nginx

2. 确认域名解析

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


二、获取 SSL 证书(推荐 Let’s Encrypt)

1. 安装 certbot

sudo apt install certbot python3-certbot-nginx

2. 自动申请并配置 SSL

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

certbot 会:

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

三、手动配置 Nginx SSL(如果你有自己的证书)

1. 上传证书文件

常见位置:

/etc/nginx/ssl/example.com/fullchain.pem
/etc/nginx/ssl/example.com/privkey.pem

2. 编辑 Nginx 站点配置

sudo nano /etc/nginx/sites-available/example.com

示例配置:

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

server {
    listen 443 ssl;
    server_name example.com www.example.com;

    ssl_certificate     /etc/nginx/ssl/example.com/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/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;
    }
}

3. 启用站点

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

4. 测试并重启

sudo nginx -t
sudo systemctl restart nginx

四、自动续期(Let’s Encrypt)

certbot 默认已配置:

sudo certbot renew --dry-run

五、防火墙(如有)

sudo ufw allow 'Nginx Full'

六、验证

  • 浏览器访问 https://example.com
  • 使用:https://sslabs.com/ 检查安全性

如果你愿意,我可以:

  • 给你 Docker + Nginx SSL
  • 或 多域名 / 反向代理 SSL
  • 或 自签名证书(内网用)

你现在是 公网域名 还是 内网测试?

0 踩