在 Debian 下对 Nginx + SSL(HTTPS) 进行优化,通常可以从 协议与加密套件、证书、会话复用、性能参数、HTTP/2、系统层面 等方面入手。下面给你一套实用且安全的优化方案(适用于 Debian 10/11/12)。
只保留 TLS 1.2 / TLS 1.3
ssl_protocols TLSv1.2 TLSv1.3;
❌ 不要启用 SSLv3、TLSv1、TLSv1.1
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
TLS 1.3 会自动忽略 cipher 配置
openssl ecparam -genkey -name secp384r1 -out key.pem
或使用 Let’s Encrypt:
certbot --key-type ecdsa
减少证书验证延迟
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/domain/fullchain.pem;
resolver 8.8.8.8 valid=60s;
resolver_timeout 5s;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets on;
多台服务器建议统一管理 ticket key
listen 443 ssl http2;
✅ HTTP/2 可显著提升 HTTPS 性能
worker_processes auto;
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
use epoll;
multi_accept on;
}
ssl_buffer_size 4k;
Debian 默认 OpenSSL 已较优,可检查:
nginx -V | grep ssl
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets on;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
resolver 8.8.8.8 valid=60s;
ssl_buffer_size 4k;
location / {
proxy_pass http://backend;
}
}
nginx -t
https://www.ssllabs.com/ssltest/
目标:A+
net.core.somaxconn 等)如果你愿意,可以告诉我:
我可以直接帮你定制一份 生产级 nginx ssl 配置。