必须仅启用 TLSv1.3 并禁用所有旧协议,配合 TLS 1.3 专用 AEAD 加密套件(如 TLS_AES_256_GCM_SHA384)、完整证书链、OCSP Stapling 和 HSTS 响应头,且 Apache ≥ 2.4.37、OpenSSL ≥ 1.1.1。

Apache 中静态网站要强制使用 TLS 1.3,关键不是“加个开关”,而是满足底层依赖、关闭所有旧协议、明确限定版本,并配合强加密套件与现代安全头。TLS 1.3 本身已移除不安全协商机制,但若配置不当(比如仍允许 TLS 1.2 并混用弱套件),客户端仍可能降级或选中风险路径。
确认运行环境支持 TLS 1.3
Apache 必须 ≥ 2.4.37,OpenSSL 必须 ≥ 1.1.1,且编译时启用了 TLS 1.3 支持。可执行以下命令验证:
- apache -v 查看版本
- openssl version 查看 OpenSSL 版本
- httpd -M | grep ssl 确认 mod_ssl 已加载
若不满足,需升级 Apache 或重编译(CentOS 7 默认源中 Apache 2.4.6 不支持,建议用 SCL 或第三方仓库如 IUS 升级)。
在虚拟主机中禁用旧协议并锁定 TLS 1.3
不要写 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2 +TLSv1.3 —— 这仍允许 TLS 1.2,无法达成“强制 TLS 1.3”。应只启用 TLS 1.3:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在
<VirtualHost *:443>块内添加:SSLProtocol -all +TLSv1.3 - 同时禁用 HTTP/1.0 和降级兼容项:
SSLOptions +StrictRequire - 确保未启用
SSLInsecureRenegotiation on(默认为 off,切勿开启)
匹配 TLS 1.3 要求的加密套件与密钥交换
TLS 1.3 只接受 AEAD 类型套件,且不再支持 RSA 密钥传输或静态 DH。Apache 配置中需:
- 设置仅 TLS 1.3 兼容套件(无需兼容旧版):
SSLCipherSuite TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 - 关闭套件协商优先权(TLS 1.3 不再需要
SSLHonorCipherOrder,可省略或设为 off) - 确保私钥为 ECDSA(推荐 secp384r1)或 RSA 3072+/4096 位,避免 SHA-1 签名
启用配套加固机制提升整体可信度
仅协议版本够新还不够,需配合证书链完整性、OCSP Stapling 和响应头策略:
- 证书文件必须含完整链(Let’s Encrypt 的
fullchain.pem),配置中用:SSLCertificateFile /path/to/fullchain.pemSSLCertificateKeyFile /path/to/privkey.pem - 启用 OCSP Stapling:
SSLUseStapling onSSLStaplingCache "shmcb:logs/stapling-cache(128000)" - 添加 HSTS 强制浏览器后续请求走 HTTPS:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
配置完成后,重启 Apache 并用 SSL Labs 测试工具 验证是否显示 “TLS 1.3 Only” 且无降级选项。

















