apache中ssl加密强度由tls协议版本、密码套件和密钥交换方式协同决定,核心是显式启用tlsv1.2/tlsv1.3、禁用旧协议、配置强套件(如ecdhe-rsa-aes128-gcm-sha256)、启用sslhonorcipherorder on,并辅以ocsp stapling等加固措施。

在 Apache 中配置 SSL 引擎支持的加密强度,核心是控制协议版本、密码套件(Cipher Suite)和密钥交换方式,而不是单纯“调高强度数值”。真正的加密强度由三者协同决定:TLS 协议版本是否现代、所选密码套件是否抗降级与前向保密、以及服务端是否强制优先级排序。
明确启用 TLSv1.2 和 TLSv1.3,禁用所有旧协议
SSLProtocol 不是“开启开关”,而是“门禁策略”。必须显式白名单,避免依赖黑名单导致行为不可控:
- Apache 2.4.37+ 且 OpenSSL ≥ 1.1.1(验证命令:openssl version -a 和 httpd -V | grep -i openssl):写为 SSLProtocol +TLSv1.2 +TLSv1.3
- Apache 2.4.29 或更早版本:不识别 + 前缀,改用 SSLProtocol TLSv1.2 TLSv1.3(空格分隔)
- 切勿遗漏 TLSv1.2 —— 否则大量合法客户端(如 Java 8u251、Android 4.4)将无法建立连接
配置强密码套件并启用服务端优先级
仅限制协议版本不够,攻击者仍可能协商弱套件。需组合使用 SSLCipherSuite 与 SSLHonorCipherOrder:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 推荐套件(兼顾安全性与兼容性):
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 - 必须禁用已知不安全算法:
隐含排除 RC4、MD5、SHA1、CBC 模式(如 AES-CBC)、NULL 加密、导出级套件(EXPORT)、匿名认证(aNULL) - 强制服务端主导选择:
SSLHonorCipherOrder on —— 防止客户端绕过强套件列表,指定弱选项
补充加固项:提升整体传输层安全水位
加密强度不仅取决于握手阶段,还需配套机制防止旁路攻击和证书信任链断裂:
-
启用 OCSP Stapling:减少客户端直连 CA,加快吊销验证并保护隐私
SSLUseStapling on
SSLStaplingCache "shmcb:/var/run/ocsp(128000)" - 设置私钥权限为 600:防止非 root 用户读取(chmod 600 /path/to/private.key)
-
禁用不安全重协商(默认已禁,确认无误):
SSLStrictSNIVHostCheck on(对多域名虚拟主机尤其重要)
验证是否真正生效
重启 Apache 后,必须实测,不能只看配置语法正确:
- 测试 TLSv1.3 是否可用:
openssl s_client -connect example.com:443 -tls1_3 2>/dev/null | grep "Protocol" → 应输出 Protocol : TLSv1.3 - 测试 TLSv1.2 回退是否允许:
openssl s_client -connect example.com:443 -tls1_2 2>/dev/null | grep "Protocol" → 应输出 Protocol : TLSv1.2 - 检查是否拒绝 TLSv1.1:
openssl s_client -connect example.com:443 -tls1_1 2>&1 | grep "handshake failure" → 应出现失败提示










