Apache启用PFS的核心是强制使用ECDHE/DHE密钥交换、禁用RSA等静态套件,配置SSLProtocol禁用TLS1.0/1.1,SSLCipherSuite仅保留ECDHE/DHE开头的强套件,并启用SSLHonorCipherOrder on。

要在 Apache 中启用完美前向保密(Perfect Forward Secrecy, PFS),核心是强制使用支持前向安全的密钥交换算法,主要是 ECDHE 或 DHE,并禁用不提供前向安全的旧算法(如基于 RSA 密钥传输的套件)。
确保 TLS 版本与密码套件兼容
Apache 必须运行在支持 TLS 1.2 或更高版本的环境中(推荐 TLS 1.3)。TLS 1.3 默认只允许前向安全的密钥交换(ECDHE/DHE),无需额外配置;但若仍需支持 TLS 1.2,则必须显式配置密码套件。
- TLS 1.3 已废弃所有非前向安全算法(如 RSA 密钥传输),只要启用 TLS 1.3,PFS 自动生效
- TLS 1.2 下需手动指定以
ECDHE或DHE开头的套件,例如:ECDHE-ECDSA-AES256-GCM-SHA384、ECDHE-RSA-AES128-GCM-SHA256 - 避免使用含
RSA(非 ECDHE/DHE)或DES/RC4/MD5的套件,它们不提供 PFS
在 ssl.conf 或虚拟主机中配置 SSLCipherSuite
编辑 Apache 的 SSL 配置(通常在 /etc/apache2/mods-available/ssl.conf 或站点配置中),设置强且前向安全的密码套件顺序:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 SSLHonorCipherOrder on
-
SSLProtocol关闭已知不安全的旧协议版本 -
SSLCipherSuite列出仅含 ECDHE/DHE 的套件,并按优先级排序(越靠前越优先) -
SSLHonorCipherOrder on确保服务器坚持自己的套件顺序,而非客户端提议
验证 DH/ECDH 参数强度(针对 DHE/ECDHE)
若使用 DHE(非椭圆曲线),需确保 DH 参数足够强(至少 2048 位);ECDHE 则依赖所选曲线(推荐 prime256v1 或 secp384r1):
- 生成自定义 DH 参数(可选,增强控制):
openssl dhparam -out /etc/ssl/certs/dh2048.pem 2048 - 在配置中加载:
SSLOptions +StrictRequire和SSLDHParamFile /etc/ssl/certs/dh2048.pem - ECDHE 不需额外文件,Apache 默认支持常用安全曲线
重启服务并测试是否生效
完成配置后重启 Apache,并用工具验证 PFS 是否启用:
-
sudo systemctl restart apache2(Debian/Ubuntu)或httpd(RHEL/CentOS) - 用 SSL Labs Test 扫描域名,检查 “Forward Secrecy” 是否显示为 “Yes”
- 命令行验证:
openssl s_client -connect example.com:443 -tls1_2,观察输出中的Cipher是否含ECDHE或DHE

















