Apache SSL高性能数据传输的核心是减少加密开销、复用连接、加速验证并匹配现代客户端能力,具体包括:启用TLS 1.3(需Apache ≥2.4.37、OpenSSL ≥1.1.1)并禁用旧协议;配置高效AEAD密码套件(如AES-GCM、ChaCha20)且强制服务器选择顺序;开启SSLSessionCache与OCSP Stapling提升会话复用和证书验证效率;启用HTTP/2与KeepAlive实现多路复用和连接复用。

要让 Apache 的 SSL 支持高性能数据传输,核心不是单纯“打开 HTTPS”,而是减少加密开销、复用连接、加速验证,并匹配现代客户端能力。关键在于协议选型、会话复用、证书链和传输层协同优化。
启用 TLS 1.3 并精简协议栈
TLS 1.3 握手只需一次往返(1-RTT),比 TLS 1.2 快且更安全。必须禁用所有老旧协议:
- 在虚拟主机或全局 SSL 配置中写入:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 - 确保 Apache 版本 ≥ 2.4.37(Ubuntu 20.04+ 默认支持),OpenSSL ≥ 1.1.1
- 避免混用 TLS 1.2/1.3 套件冲突:TLS 1.3 使用独立密码列表,无需在
SSLCipherSuite中指定
配置高效密码套件与前向保密
优先使用硬件友好的 AEAD 算法(如 AES-GCM、ChaCha20),并强制服务器选择顺序:
- SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305
- SSLHonorCipherOrder on —— 让服务器主导协商,避开客户端低效套件
- 禁用 RC4、3DES、MD5、NULL、EXPORT 等弱算法,降低 CPU 解密负担
开启会话复用与 OCSP Stapling
避免每次请求都做完整握手,是提升吞吐的关键:
- 会话缓存(基于共享内存):
SSLSessionCache shmcb:/var/run/apache2/ssl_scache(512000)
SSLSessionCacheTimeout 300 - OCSP Stapling(由服务器主动提供证书吊销状态):
SSLUseStapling on
SSLStaplingCache "shmcb:/var/run/apache2/stapling-cache(128000)"
SSLStaplingResponderTimeout 5
SSLStaplingVerify on - 确认中间证书已完整配置(证书文件包含根+中间证书),否则客户端需额外请求
启用 HTTP/2 与连接复用
HTTP/2 在单个 TLS 连接上多路复用请求,显著降低延迟和连接数压力:
- 确认已启用
mod_http2:
sudo a2enmod http2 - 在 SSL 虚拟主机中添加:
Protocols h2 http/1.1 - 配合 KeepAlive 提升复用率:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5 - 可选:启用
mod_deflate压缩文本类响应(HTML/CSS/JS),但避免压缩已加密流量(如图片、视频)



















