温馨提示×

Debian Nginx SSL怎样加密

小樊
41
2026-10-17 08:29:41
栏目: 云计算

在 Debian 上通过 Nginx + SSL 实现“加密”(HTTPS),通常分为以下几个步骤:获取 SSL 证书、配置 Nginx、强制 HTTPS、以及安全加固。下面给你一套实用且较安全的做法。


一、环境准备(Debian)

sudo apt update
sudo apt install nginx

确保防火墙允许 80 / 443:

sudo ufw allow 'Nginx Full'

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

1. 安装 Certbot

sudo apt install certbot python3-certbot-nginx

2. 申请证书并自动配置 Nginx

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

替换 example.com 为你的域名
Certbot 会自动修改 Nginx 配置并启用 HTTPS

3. 设置自动续期

sudo certbot renew --dry-run

三、Nginx SSL 基本配置示例

如果你的证书是手动放的(如 /etc/ssl/),Nginx 配置示例:

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

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

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

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

四、强制 HTTP 跳转 HTTPS(加密访问)

server {
    listen 80;
    server_name example.com;

    return 301 https://$host$request_uri;
}

五、SSL 安全加固(重要)

1. 开启 HSTS

add_header Strict-Transport-Security "max-age=31536000" always;

2. 禁用旧协议

ssl_protocols TLSv1.2 TLSv1.3;

3. 使用强加密套件

ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
ssl_prefer_server_ciphers on;

六、验证 SSL 是否生效

  • 浏览器访问:https://example.com
  • 命令行检测:
curl -I https://example.com
  • SSL 评分检测: https://www.ssllabs.com/ssltest/

七、常见误区

❌ 只监听 443 但不跳转 80
❌ 使用自签名证书用于生产
❌ 开启 SSLv3 / TLS 1.0
❌ 私钥权限不正确(应为 600)


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

  • 是 生产环境还是本地测试
  • 是否使用 域名 / IP
  • 是否需要 自签名证书方案

我可以直接帮你写一份完整 Nginx 配置。

0 踩