linux

Nginx SSL优化技巧有哪些

小樊
40
2025-10-10 07:18:44
栏目: 云计算

1. 启用HTTP/2协议
HTTP/2通过多路复用、头部压缩等技术显著提升HTTPS性能,减少延迟。Nginx中只需在listen指令后添加http2参数即可启用(需Nginx版本≥1.9.5且OpenSSL≥1.0.2):

listen 443 ssl http2;

2. 选择现代TLS版本
禁用不安全的SSLv2、SSLv3及存在漏洞的TLSv1.0、TLSv1.1,仅保留TLSv1.2(广泛兼容)和TLSv1.3(最新高性能版本),降低被攻击风险:

ssl_protocols TLSv1.2 TLSv1.3;

3. 配置强加密套件
优先使用前向保密(Forward Secrecy)的ECDHE(椭圆曲线迪菲-赫尔曼)算法组合,搭配AES-GCM( Galois/Counter Mode)或CHACHA20-POLY1305加密算法,兼顾性能与安全性。示例配置:

ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;  # 强制服务器优先使用配置的套件

4. 启用SSL会话缓存与票据
通过会话缓存(ssl_session_cache)存储已完成的握手信息,减少重复握手次数;配合会话票据(ssl_session_tickets)进一步提升性能。示例配置:

ssl_session_cache shared:SSL:10m;  # 共享内存缓存,大小10MB
ssl_session_timeout 10m;           # 会话有效期10分钟
ssl_session_tickets on;            # 启用会话票据

5. 开启OCSP Stapling
OCSP Stapling让服务器主动获取证书状态(而非客户端查询OCSP服务器),减少握手时间。配置需指定证书路径和解析器:

ssl_stapling on;                   # 启用OCSP Stapling
ssl_stapling_verify on;            # 验证OCSP响应有效性
ssl_trusted_certificate /path/to/fullchain.pem;  # CA证书链路径
resolver 8.8.8.8 8.8.4.4 valid=300s;  # DNS解析器及缓存时间
resolver_timeout 5s;               # 解析超时时间

6. 优化SSL握手性能

7. 启用Gzip压缩
减少传输数据量,提升页面加载速度(需注意避免对敏感数据压缩)。示例配置:

gzip on;                          # 启用Gzip
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;  # 压缩类型
gzip_comp_level 6;                # 压缩级别(1-9,6为平衡值)
gzip_vary on;                     # 添加Vary头,避免缓存问题
gzip_disable "msie6";             # 禁用IE6的Gzip(兼容性问题)

8. 配置HSTS(HTTP Strict Transport Security)
强制浏览器使用HTTPS访问,防止SSL剥离攻击。示例配置(max-age设置为1年,包含子域名):

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

9. 定期更新与监控

0
看了该问题的人还看了