禁用不安全的SSLv3及更低版本,仅启用TLSv1.2(广泛兼容)和TLSv1.3(更快的握手速度、更强的安全性)。配置示例如下:
ssl_protocols TLSv1.2 TLSv1.3;
TLSv1.3减少了握手往返次数(从2次降至1次),显著提升了连接建立速度。
优先使用**ECDHE(椭圆曲线迪菲-赫尔曼)**密钥交换算法(支持前向安全性)+ AES-GCM/CHACHA20加密算法(高效且安全)的组合。避免使用CBC模式(易受BEAST等攻击)和弱算法(如MD5、RC4)。配置示例如下:
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on; # 优先使用服务器端加密套件
该配置兼顾了安全性与性能,符合Mozilla Intermediate兼容性指南。
通过会话缓存和会话票据减少重复握手,降低服务器负载。配置示例如下:
ssl_session_cache shared:SSL:50m; # 共享内存缓存大小(根据服务器内存调整)
ssl_session_timeout 1d; # 会话有效期(1天,可根据业务调整)
ssl_session_tickets on; # 启用会话票据(更轻量的复用方式)
测试显示,启用会话复用后,重复连接的建立速度可提升85%。
OCSP Stapling将证书状态验证结果缓存到服务器,避免客户端每次握手都需向证书颁发机构(CA)查询,减少握手延迟。配置示例如下:
ssl_stapling on; # 启用OCSP Stapling
ssl_stapling_verify on; # 验证OCSP响应的有效性
ssl_trusted_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # CA证书链路径
resolver 8.8.8.8 8.8.4.4 valid=300s; # DNS解析器配置
resolver_timeout 5s; # DNS解析超时时间
该配置可将证书验证时间从几百毫秒缩短至几毫秒。
HTTP/2支持多路复用(多个请求/响应共用一个连接)、头部压缩等功能,显著提升页面加载速度。只需在listen指令中添加http2参数:
listen 443 ssl http2; # 启用HTTP/2
HTTP/2是现代浏览器的默认协议,启用后可减少延迟、提高并发能力。
调整Nginx的工作进程、连接数等参数,提升整体性能:
worker_processes auto; # 根据CPU核心数自动设置工作进程数
worker_connections 4096; # 每个工作进程的最大连接数(根据内存调整)
sendfile on; # 启用sendfile(零拷贝,减少数据拷贝次数)
tcp_nopush on; # 与sendfile配合,优化数据包发送
tcp_nodelay on; # 禁用Nagle算法,减少延迟
keepalive_timeout 65; # 保持连接的超时时间(秒)
这些参数可提高Nginx的并发处理能力,适应高流量场景。
通过Gzip压缩文本内容(如HTML、CSS、JS),减少传输数据量,提升页面加载速度。配置示例如下:
gzip on; # 启用Gzip
gzip_vary on; # 添加Vary头(避免代理缓存问题)
gzip_proxied any; # 对所有代理请求启用压缩
gzip_comp_level 6; # 压缩级别(1-9,6为平衡性能与压缩比)
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
建议对文本类资源启用压缩,对图片、视频等二进制文件无需压缩(已自带压缩)。
对于高流量网站,可使用SSL硬件加速卡(如Intel QAT)或ECC证书(椭圆曲线证书,计算量更小)提升性能。Nginx配置示例如下(启用硬件加速):
ssl_engine qat; # 使用Intel QAT硬件加速(需安装驱动)
ECC证书(如256位ECC)的性能优于传统RSA证书(如2048位),且安全性更高。
nginx -t检查配置语法,通过ssllabs.com或testssl.sh工具定期扫描SSL配置(确保无高风险漏洞)。以上优化技巧兼顾了SSL的安全性与性能,适用于CentOS上的Nginx服务器。需根据实际业务场景(如流量大小、兼容性要求)调整配置参数。