应启用tls 1.2和tls 1.3,禁用sslv2/v3及tlsv1.0/1.1;使用强aead套件如tls13+aesgcm+sha384,开启ocsp stapling、hsts与会话缓存,并关闭压缩和会话票据以达安全兼容平衡。
apache 中 tls 参数配置要达到安全与兼容的平衡,关键不是堆参数,而是选对协议版本、禁用已知风险套件、启用现代加密特性,并配合合理的证书链管理。以下是一套适用于当前(2026年)生产环境的推荐 tls 配置模板,兼顾 pci dss、等保2.0 及主流浏览器/客户端兼容性。
一、核心 TLS 协议与加密套件控制
在 Apache 的 SSL 虚拟主机或全局 ssl.conf 中添加以下指令:
-
明确启用并限制协议版本:只允许 TLS 1.2 和 TLS 1.3(TLS 1.3 是默认启用且不可禁用的,但需确保不回退)
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 -
指定强加密套件(优先 TLS 1.3 套件,再降级到 TLS 1.2):
SSLCipherSuite TLS13+AESGCM+SHA384:TLS13+CHACHA20:EECDH+AESGCM:EDH+AESGCM
(该组合禁用 RC4、DES、3DES、NULL、EXPORT、MD5、SHA1 等弱算法) -
强制服务端密码套件顺序,防止客户端选择弱套件:
SSLHonorCipherOrder on
二、证书与密钥安全强化
除基础证书路径外,建议补充以下增强项:
-
启用 OCSP Stapling,提升证书状态验证效率与隐私:
SSLUseStapling on
SSLStaplingCache "shmcb:/var/run/apache2/stapling_cache(128000)" -
启用 HSTS(HTTP Strict Transport Security),强制浏览器仅走 HTTPS(含子域,预加载推荐):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" -
关闭不安全的重协商(防范 CVE-2011-1473):
SSLStrictSNIVHostCheck on(配合 SNI 使用)
三、性能与会话优化
避免频繁 TLS 握手开销,尤其对高并发站点:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
启用会话缓存(共享内存方式更高效):
SSLSessionCache "shmcb:/var/run/apache2/ssl_scache(512000)"
SSLSessionCacheTimeout 300 -
TLS 1.3 下自动启用 0-RTT 是可选的,但生产环境建议关闭(因存在重放风险):
SSLCompression off
SSLSessionTickets off(禁用会话票据,依赖传统会话缓存更可控)
四、完整最小化配置片段示例
放在 <virtualhost></virtualhost> 块内即可生效:
SSLEngine on SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite TLS13+AESGCM+SHA384:TLS13+CHACHA20:EECDH+AESGCM:EDH+AESGCM SSLHonorCipherOrder on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLUseStapling on SSLStaplingCache "shmcb:/var/run/apache2/stapling_cache(128000)" Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" SSLSessionCache "shmcb:/var/run/apache2/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLCompression off SSLSessionTickets off SSLStrictSNIVHostCheck on
配置后务必执行 sudo apache2ctl configtest 校验语法,并重启服务。可用 SSL Labs Test 验证评级,目标为 A+(需同时满足 HSTS、OCSP、强套件等全部条件)。









