温馨提示×

如何为debian配置nginxssl

小樊
46
2026-09-20 23:41:30
栏目: 云计算

下面以 Debian + Nginx 为例,说明如何配置 SSL(HTTPS),包含自签证书和Let’s Encrypt 免费证书两种方式。


一、准备工作

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx

sudo apt install nginx -y

3. 确认防火墙(如有)

sudo ufw allow 'Nginx Full'

二、使用 Let’s Encrypt 免费 SSL(推荐)

1. 安装 Certbot

sudo apt install certbot python3-certbot-nginx -y

2. 获取 SSL 证书

假设你的域名是 example.com,并已解析到服务器 IP:

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

按提示输入邮箱并同意协议,Certbot 会自动:

  • 申请证书
  • 修改 Nginx 配置
  • 启用 HTTPS

3. 自动续签测试

sudo certbot renew --dry-run

✅ Let’s Encrypt 证书有效期 90 天,会自动续期。


三、手动配置 Nginx 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

2. 配置 Nginx

编辑站点配置:

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

示例配置:

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. 启用站点

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

4. 测试并重启

sudo nginx -t
sudo systemctl restart nginx

四、SSL 安全优化(推荐)

在 443 server 块中添加:

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

五、常见问题

❓ 浏览器提示“不安全”

  • 自签证书正常现象
  • 生产环境请用 Let’s Encrypt

❓ 无法访问 HTTPS

  • 检查 443 端口是否开放
  • 检查 DNS 是否正确解析

如果你需要:

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

可以告诉我你的具体场景,我可以进一步细化配置。

0 踩