温馨提示×

怎么在debian部署nginxssl

小樊
47
2026-09-23 23:51:07
栏目: 云计算

下面以 Debian(如 Debian 11/12) 为例,讲解如何 部署 Nginx 并配置 SSL(HTTPS),包括自签证书和可信证书(Let’s Encrypt)两种方式。


一、安装 Nginx

sudo apt update
sudo apt install nginx -y

安装完成后:

sudo systemctl enable nginx
sudo systemctl start nginx

浏览器访问服务器 IP,能看到 Nginx 欢迎页即正常。


二、配置防火墙(可选但推荐)

sudo apt install ufw
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

三、方式一:使用 Let’s Encrypt 免费 SSL(推荐,公网可用)

1. 安装 Certbot

sudo apt install certbot python3-certbot-nginx -y

2. 申请证书(需域名解析到服务器)

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

按提示输入邮箱、同意协议即可。

3. 自动续签

sudo certbot renew --dry-run

Certbot 会自动修改 Nginx 配置,启用 HTTPS。


四、方式二:使用自签 SSL 证书(内网/测试用)

1. 生成私钥和证书

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

按提示填写信息(Common Name 填域名或 IP)。


2. 配置 Nginx SSL

编辑站点配置:

sudo nano /etc/nginx/sites-available/default

示例配置:

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

server {
    listen 443 ssl;
    server_name example.com;

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

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

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

3. 测试并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

访问 https://你的IP或域名,浏览器会提示“不安全”(自签证书正常现象)。


五、常见问题

1. 证书不生效?

  • 确认域名 DNS 已解析
  • 确认 80/443 端口开放
  • 查看错误日志:
sudo tail -n 50 /var/log/nginx/error.log

2. 只想 IP + HTTPS?

  • 可用自签证书
  • Common Name 填服务器 IP

六、总结

场景 推荐方式
公网网站 Let’s Encrypt
内网/测试 自签证书
自动化 Certbot

如果你需要:

  • 多域名 SSL
  • 反向代理 + SSL
  • Docker 中部署 Nginx SSL

可以直接告诉我你的使用场景。

0 踩