Apache TLS配置启用AEAD需在SSLCipherSuite中仅指定含GCM或POLY1305的套件(如ECDHE-RSA-AES128-GCM-SHA256),禁用所有非AEAD套件,并配合SSLProtocol TLSv1.2 TLSv1.3、SSLHonorCipherOrder on等指令确保强制协商。
apache 中 tls 配置要启用 aead(authenticated encryption with associated data)加密算法,核心是**在 sslciphersuite 指令中明确指定支持 aead 的套件,并禁用所有非 aead 套件**。aead 是等保三级、pci dss、nist sp 800-52r3 等合规标准的强制要求,它将加密与完整性校验一步完成(如 aes-gcm、chacha20-poly1305),彻底替代已淘汰的 cbc 模式+hmac 组合。
必须使用的 AEAD 套件格式
Apache mod_ssl 支持的 AEAD 套件命名有固定规律:名称中必须包含 GCM 或 POLY1305,且不含 CBC、SHA1、MD5、RC4、DES、3DES 等关键词。常见有效组合包括:
- ECDHE-ECDSA-AES128-GCM-SHA256(推荐用于 ECDSA 证书)
- ECDHE-RSA-AES128-GCM-SHA256(兼容性最广,RSA 证书常用)
- ECDHE-RSA-AES256-GCM-SHA384(更强密钥长度)
- ECDHE-RSA-CHACHA20-POLY1305(对移动/弱CPU设备更友好)
配置示例与关键指令
在虚拟主机或 ssl.conf 的 <VirtualHost *:443> 块中添加以下内容:
SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305 SSLHonorCipherOrder on SSLCompression off
说明:
Apache 2.4.62 官方 tar.gz 源码包是 Linux 及类 Unix 系统构建 Web 服务器的核心基础。通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
-
SSLProtocol必须显式列出 TLSv1.2 和 TLSv1.3,不能写all -SSLv3 -TLSv1,避免隐含启用不安全版本 -
SSLCipherSuite中只保留 AEAD 套件,顺序按优先级从高到低排列;不加任何非 AEAD 套件(如AES256-SHA或ECDHE-RSA-AES128-CBC-SHA256) -
SSLHonorCipherOrder on强制 Apache 按配置顺序选择套件,防止客户端降级攻击 -
SSLCompression off关闭压缩,防御 CRIME 类攻击(虽不属 AEAD 范畴,但属 AEAD 部署必备配套)
验证是否生效
配置后重启前执行:apachectl configtest;启动后可用以下方式验证:
- 用 OpenSSL 测试连接:
openssl s_client -connect yourdomain.com:443 -tls1_2,查看输出中Cipher is行是否为ECDHE-RSA-AES128-GCM-SHA256类名称 - 用浏览器访问,按 F12 → Security 标签页,确认“Connection secure”下显示协议为 TLS 1.2 或 1.3,且 Cipher 为
TLS_AES_128_GCM_SHA256(TLS 1.3)或ECDHE-RSA-AES128-GCM-SHA256(TLS 1.2) - 检查 Apache 日志格式是否包含
%{SSL_CIPHER}x,便于审计实际协商结果
注意事项
AEAD 套件依赖底层 OpenSSL 版本支持。Apache 2.4.37+ 与 OpenSSL 1.1.1+ 可完整支持 TLS 1.3 AEAD(如 TLS_AES_128_GCM_SHA256);若使用旧版 OpenSSL,仅能启用 TLS 1.2 下的 GCM/POLY1305 套件。生产环境建议升级至 OpenSSL 3.0+ 并启用 TLS 1.3。

















