保持软件更新
确保系统和Apache为最新版本,新版本通常包含SSL性能改进与安全修复。使用sudo apt update && sudo apt upgrade
(Ubuntu/Debian)或对应包管理器更新系统及Apache。
优化SSL/TLS协议配置
禁用不安全的旧协议(如SSLv2、SSLv3、TLSv1、TLSv1.1),仅启用TLSv1.2及以上版本(优先支持TLSv1.3)。在Apache配置文件(如ssl.conf
或站点配置文件)中添加:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
TLSv1.3减少了握手轮次(仅需1-2次),显著提升性能。
选择高性能密码套件
选用兼顾安全与性能的密码套件,优先支持前向保密(PFS,如ECDHE密钥交换)。配置示例:
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4:!3DES
避免使用弱密码套件(如DES、RC4),减少加密计算开销。
启用SSL会话缓存与票证
通过重用SSL握手减少重复协商,降低延迟。配置会话缓存:
SSLSessionCache shmcb:/var/run/ssl_scache(512000)
(缓存大小512KB,可根据服务器内存调整)
SSLSessionCacheTimeout 300
(缓存超时300秒);
启用会话票证(若客户端支持):
SSLSessionTickets on
。
启用OCSP Stapling
让服务器主动获取证书状态(OCSP响应)并发送给客户端,避免客户端单独验证导致的延迟。配置示例:
SSLUseStapling on
SSLStaplingCache shmcb:/var/run/ocsp-stapling-cache(128000)
(缓存大小128KB)。
启用HTTP/2协议
HTTP/2的多路复用特性可减少连接建立开销,提升并发性能。在配置中添加:
Protocols h2 http/1.1
需确保Apache版本≥2.4.17且mod_http2
模块已启用。
调整KeepAlive设置
启用KeepAlive减少TCP握手次数,提升连接复用率。配置示例:
KeepAlive On
MaxKeepAliveRequests 100
(单个连接最大请求数,避免单个连接占用过久)
KeepAliveTimeout 5
(连接保持时间,平衡复用率与资源占用)。
优化系统与Apache参数
/etc/security/limits.conf
添加:apache soft nofile 65536
apache hard nofile 65536
/etc/sysctl.conf
,添加以下参数提升网络性能:net.core.somaxconn = 65535
(监听队列最大长度)net.ipv4.tcp_max_syn_backlog = 65535
(SYN队列最大长度)net.ipv4.tcp_tw_reuse = 1
(允许复用TIME-WAIT连接)net.ipv4.tcp_fin_timeout = 30
(TIME-WAIT超时时间,单位秒)sudo sysctl -p
。启用压缩(可选)
对文本类内容(HTML、CSS、JS)启用Gzip压缩,减少传输数据量(注意:HTTPS压缩可能存在CRIME攻击风险,需权衡)。配置示例:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
SetEnvIf Request_URI \.(?:gif|jpe?g|png|exe|t?gz|zip|bz2|sit|rar|pdf)$ no-gzip dont-vary
</IfModule>
。
监控与持续调优
使用工具(如openssl s_client
、nmap
、在线SSL检测服务)定期分析SSL配置性能,根据服务器负载(CPU、内存、网络流量)调整缓存大小、工作进程数等参数。例如:
openssl s_client -connect yourdomain.com:443 -tls1_2 -servername yourdomain.com
可查看握手时间、支持的协议/密码套件等信息。