apache的ssl性能优化核心是启用现代tls协议、精简密码套件、配置会话复用与ocsp stapling、协同调优连接层;需确保mod_ssl及socache_shmcb等模块加载,禁用旧协议,优先ecdhe与aes-gcm,启用shmcb缓存、http/2和hsts。

Apache 的 SSL 模块(mod_ssl)本身不直接提供“高性能”,但配合合理配置与系统协同,能显著提升 HTTPS 连接效率、降低延迟、减少 CPU 开销。关键在于避免默认配置的保守性,转向现代 TLS 实践和连接复用机制。
一、启用并验证核心模块
确保 mod_ssl 和依赖模块已加载:
- 运行
apachectl -M | grep -E "(ssl|socache|http2|deflate)",确认输出包含ssl_module、socache_shmcb_module(用于高效会话缓存)、http2_module(可选但推荐)、deflate_module(压缩文本资源) - 若缺失,在主配置中补全:
LoadModule ssl_module modules/mod_ssl.soLoadModule socache_shmcb_module modules/mod_socache_shmcb.so - 重启 Apache 后检查错误日志,确认无
Invalid command 'SSLSessionCache'类报错
二、TLS 协议与密码套件精简优化
老旧协议和弱算法既不安全又拖慢握手速度。应主动裁剪,只保留现代组合:
- 禁用所有不安全协议:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3 - 优先使用前向保密(PFS)且计算高效的密钥交换:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 - 强制服务器选择顺序(避免客户端低效套件):
SSLHonorCipherOrder on
三、会话复用与 OCSP Stapling 加速验证
完整 TLS 握手需多次往返,而复用可降至 0-RTT(TLS 1.3)或 1-RTT(TLS 1.2)。这是性能提升最直接的环节:
- 配置共享内存会话缓存(必须放在全局配置,不能在 VirtualHost 内):
SSLSessionCache shmcb:/var/cache/apache2/ssl_scache(512000)SSLSessionCacheTimeout 300 - 启用 OCSP Stapling,让服务器主动携带证书状态,省去客户端向 CA 查询的耗时:
SSLUseStapling onSSLStaplingCache shmcb:/var/cache/apache2/ocsp-stapling-cache(128000) - 验证是否生效:用
openssl s_client -connect yoursite.com:443 -reconnect -servername yoursite.com 2>/dev/null | grep "Session-ID",连续两次出现Reused即表示成功
四、连接层与传输层协同调优
HTTPS 性能不仅取决于加密层,还受 TCP 和 HTTP 层影响:
- 开启并合理设置 KeepAlive:
KeepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 5 - 启用 HTTP/2(要求 Apache ≥ 2.4.17 且
mod_http2已启):Protocols h2 http/1.1 - 对 HTML/CSS/JS 等文本资源启用压缩:
SetOutputFilter DEFLATE,配合AddOutputFilterByType DEFLATE text/html text/css application/javascript - 添加 HSTS 头减少重定向开销:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"











