apache开启tls 1.3的核心是确保openssl≥1.1.1且apache≥2.4.37,配置sslprotocol +tlsv1.2 +tlsv1.3并仅用tls 1.3专用密钥套件(如tls_aes_128_gcm_sha256),否则协商失败。

确认 OpenSSL 和 Apache 版本兼容
Apache 自身不实现 TLS,靠 mod_ssl 调用 OpenSSL。TLS 1.3 支持完全取决于 OpenSSL 版本:
- 必须使用 OpenSSL 1.1.1 或更高版本(如 1.1.1w、3.0.x、3.1.x)
- Apache 需为 2.4.37 及以上(配合 OpenSSL 1.1.1+ 才能启用)
- 仅升级 Apache 而不更新 OpenSSL 无效
验证方式:
openssl version -a — 查看 OpenSSL 实际版本
httpd -V | grep -i openssl 或 ldd $(which httpd) | grep ssl — 确认 Apache 编译链接的是哪个 OpenSSL
修改 SSL 配置启用 TLS 1.3
在 ssl.conf 或虚拟主机的
-
协议启用:用 SSLProtocol +TLSv1.2 +TLSv1.3(明确启用 1.2 和 1.3,禁用旧协议)
避免写 SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1,它会意外禁掉 TLS 1.2 -
密钥套件限定:只用 TLS 1.3 专用套件,例如:
SSLCipherSuite TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
不能混入 TLS 1.2 套件,否则协商可能失败 - 保持顺序优先:加上 SSLHonorCipherOrder on(虽对 TLS 1.3 无实质影响,但建议保留)
重启并验证是否生效
保存配置后重启服务:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
systemctl restart httpd 或 apachectl graceful
验证方法:
- 命令行测试:openssl s_client -connect example.com:443 -tls1_3,成功时显示 Protocol : TLSv1.3
- 浏览器开发者工具 → Security 标签页 → 查看连接协议
- 第三方检测(如 SSL Labs Test)会明确列出支持的协议与套件
注意客户端兼容性问题
TLS 1.3 是不向后兼容的升级,部分老旧环境无法协商:
- Android 4.4 及更早系统
- Java 8(需 u261+ 并加 JVM 参数 -Djdk.tls.client.protocols=TLSv1.3)
- Java 11+ 默认支持
- 某些嵌入式设备或定制客户端
若业务需兼顾旧客户端,应评估是否保留 TLS 1.2,而非强制仅用 1.3。










