在 Debian 上通过 Nginx + SSL 实现“加密”(HTTPS),通常分为以下几个步骤:获取 SSL 证书、配置 Nginx、强制 HTTPS、以及安全加固。下面给你一套实用且较安全的做法。
sudo apt update
sudo apt install nginx
确保防火墙允许 80 / 443:
sudo ufw allow 'Nginx Full'
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
替换
example.com为你的域名
Certbot 会自动修改 Nginx 配置并启用 HTTPS
sudo certbot renew --dry-run
如果你的证书是手动放的(如 /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;
}
}
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
add_header Strict-Transport-Security "max-age=31536000" always;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
ssl_prefer_server_ciphers on;
https://example.comcurl -I https://example.com
❌ 只监听 443 但不跳转 80
❌ 使用自签名证书用于生产
❌ 开启 SSLv3 / TLS 1.0
❌ 私钥权限不正确(应为 600)
如果你愿意,可以告诉我:
我可以直接帮你写一份完整 Nginx 配置。