Apache HTTPS优化核心是减少往返、复用连接、缩短验证链路:启用TLS 1.3(1-RTT)、SSL会话复用、OCSP Stapling,并精简加密套件、关闭冗余重定向。

Apache 中 HTTPS 配置直接影响 SSL 握手耗时,而握手延迟是首屏加载慢的常见瓶颈。优化核心不是“加功能”,而是减少往返、复用连接、缩短验证链路。
启用 SSL 会话复用(关键一步)
默认情况下,每次新连接都要完整走一次 TLS 握手(1-2 RTT),启用会话复用后,返回用户可跳过密钥交换,直接恢复会话。
- 在 Apache 的 SSL 配置块中添加:
SSLSessionCache "shmcb:/var/cache/apache2/ssl_scache(512000)"
SSLSessionCacheTimeout 300
SSLUseStapling off(先关 OCSP Stapling,避免干扰测试) - 确保 mod_ssl 已启用,且共享内存路径有写权限
- 重启 Apache 后用 openssl s_client -connect yoursite.com:443 -reconnect 观察是否出现 Reused, TLSv1.3 字样
开启 OCSP Stapling(省去浏览器额外查询)
浏览器验证证书有效性时,若不启用 Stapling,会单独向 CA 的 OCSP 服务器发请求(增加 100–500ms 延迟)。由服务器主动“贴”上有效响应,能显著提速。
- 确认 Apache 版本 ≥ 2.4.8(推荐 ≥ 2.4.37),并启用 mod_ssl 和 mod_socache_shmcb
- 在虚拟主机配置中加入:
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache "shmcb:/var/cache/apache2/ssl_stapling(128000)" - 注意:需确保服务器能访问 OCSP 响应地址(如 http://ocsp.int-x3.letsencrypt.org),防火墙或 DNS 不通会导致 stapling 失败反拖慢
强制使用 TLS 1.3 并精简加密套件
TLS 1.3 握手只需 1-RTT(甚至 0-RTT),比 TLS 1.2 快 30% 以上;同时禁用老旧低效算法,减少协商时间。
- 在 SSL 配置中明确协议版本:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2 +TLSv1.3 - 设置高效且兼容性好的加密套件:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 - 禁用不安全或低效选项:
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
配合 HTTP/2 并关闭冗余重定向
HTTP/2 要求 HTTPS,且多路复用特性可避免队头阻塞;但若存在多余跳转(如 HTTP → HTTPS → HTTPS/www),会叠加握手开销。
- 确保只做一次 301 跳转:HTTP → HTTPS(非 www 或带 www 统一为一种),避免链式跳转
- 启用 HTTP/2:
Protocols h2 http/1.1(需 Apache ≥ 2.4.26 + OpenSSL ≥ 1.0.2) - 检查是否误启用了 mod_rewrite 中的重复重写规则,可用 curl -I http://yoursite.com 看 Location 头是否只出现一次


















