server {
listen 443 ssl;
server_name example.com;
# 证书路径配置
ssl_certificate /path/to/fullchain.pem; # 包含中间证书的完整证书链
ssl_certificate_key /path/to/private.key; # 私钥文件
# 启用SSL会话复用
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 仅使用TLS协议,禁用不安全的SSL协议
ssl_protocols TLSv1.2 TLSv1.3;
# 配置密码套件
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_prefer_server_ciphers on;
# 启用HSTS (HTTP Strict Transport Security)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
# 其他安全头
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
# OCSP Stapling配置
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# 其他服务器配置...
}
# 在http上下文中添加
map $host $certificate_path {
default "/etc/letsencrypt/live/$host/fullchain.pem";
}
map $host $certificate_key_path {
default "/etc/letsencrypt/live/$host/privkey.pem";
}
server {
ssl_certificate $certificate_path;
ssl_certificate_key $certificate_key_path;
}
# 生成强DH参数(建议定期更新)
openssl dhparam -out /etc/nginx/dhparam.pem 4096
然后在Nginx配置中添加:
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_ciphers 'TLS13+AESGCM+AES128:TLS13+AESGCM+AES256:TLS13+CHACHA20';
证书管理:
安全强化:
性能优化:
ssl_buffer_size 4k;
监控与维护:
配置完成后,使用以下工具验证:
nginx -t # 测试配置语法
service nginx reload # 重新加载配置
# 使用SSL Labs测试
curl https://www.ssllabs.com/ssltest/analyze.html?d=yourdomain.com
通过以上配置,您可以建立一个安全、高效的SSL/TLS加密传输层,保护用户数据在传输过程中的安全。