温馨提示×

debian下nginxssl怎样开启

小樊
40
2026-09-11 14:46:56
栏目: 云计算

在 Debian 下为 Nginx 开启 SSL(即 HTTPS),一般步骤如下:


一、准备 SSL 证书

方式 1:使用 Let’s Encrypt(推荐,免费)

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

申请证书并自动配置 Nginx:

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

替换 example.com 为你的域名

Certbot 会自动修改 Nginx 配置并开启 SSL。


方式 2:使用自有证书(如购买或自签)

假设你已有:

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

二、配置 Nginx 开启 SSL

编辑站点配置文件(通常在 /etc/nginx/sites-available/):

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

示例配置(SSL)

server {
    listen 443 ssl;
    server_name example.com www.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;

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

# HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

三、启用站点并重载 Nginx

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

四、防火墙与端口

确保 443 端口开放:

sudo ufw allow 'Nginx Full'

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

sudo certbot renew --dry-run

常见问题

  • 证书路径写错nginx -t 会直接报错
  • 80 端口被占用:无法验证证书
  • 域名未解析:SSL 无法申请成功

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

  • 是否使用域名
  • 是否已有证书
  • Debian 版本(如 11 / 12)

我可以给你更精确的配置。

0