Apache SSL性能优化核心是减少TLS握手开销、加速证书验证、提升连接复用率:精简证书链;启用shmcb会话缓存(512KB/300秒)及会话票证;强制OCSP Stapling(独立128KB缓存);仅启用TLS 1.2/1.3并优选ECDHE+AES-GCM/ChaCha20套件,禁用弱协议与算法。

Apache 的 SSL 证书加载性能,本质是减少 TLS 握手开销、加速证书验证、提升连接复用率。它不单指“读取证书文件快慢”,而是整条 HTTPS 连接建立链路的响应效率。优化重点在协议层、缓存机制和系统协同,而非证书文件本身大小(只要不是几百 MB 的异常链)。
精简并正确配置证书链
证书链过长或缺失中间证书,会导致客户端反复回源校验,显著拖慢首次握手。 - 把服务器证书和所有必需的中间证书合并为一个 `.pem` 文件(顺序:服务器证书 → 中间证书 → 不含根证书),用 `SSLCertificateFile` 指向该文件; - 避免使用 `SSLCertificateChainFile`(已弃用),改用单文件方式; - 用 `openssl verify -untrusted ca-bundle.pem cert.pem` 验证链完整性; - 删除冗余中间证书(比如多个同级 CA 或已过期的旧中间件)。启用并调优 SSL 会话缓存
每次完整 TLS 握手都涉及密钥交换与签名运算,CPU 开销大。会话复用可跳过大部分步骤。 - 使用共享内存缓存(`shmcb`),而非文件或 DBM: SSLSessiоnCache shmcb:/var/run/apache2/ssl_scache(512000) - 设置合理超时(300 秒较通用,高并发可略缩短): SSLSessiоnCacheTimeout 300 - 若 Apache ≥ 2.4.12 且客户端支持,开启会话票证进一步降低服务端状态负担: SSLSessiоnTickets on强制启用 OCSP Stapling
传统 OCSP 查询需客户端直连 CA,网络延迟不可控。Stapling 让 Apache 主动获取并缓存 OCSP 响应,在握手时一并下发。 - 开启 Stapling: SSLUseStapling on - 配置独立缓存(避免与会话缓存混用): SSLStaplingCache "shmcb:/var/run/apache2/stapling-cache(128000)" - 确保 `SSLStaplingResponderTimeout` 不设过小(默认 5 秒足够),避免因超时降级为传统 OCSP。协议与密码套件聚焦高性能路径
TLS 1.3 和 AEAD 密码(如 AES-GCM、ChaCha20)硬件加速友好,握手更快、加密更轻量。 - 仅保留 TLS 1.2 和 1.3: SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 - 密码套件优先 ECDHE + AES-GCM / ChaCha20-Poly1305,禁用 RSA 密钥交换、CBC 模式、MD5/SHA1: SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 - 强制服务端选择(防客户端低效协商): SSLHonorCipherOrder on不复杂但容易忽略



















