要提高apache服务器在ssl labs中的评分至a+,须禁用tls 1.0/1.1及弱套件,启用tls 1.2/1.3、hsts、ocsp stapling、http/2和会话复用,并确保证书链完整与响应头合规。
要提高 apache 服务器在 ssl labs 等工具中的评分(如从 b 升至 a+),关键不是堆砌功能,而是精准禁用不安全项、启用现代协议与机制,并确保证书链和响应头合规。评分核心考察:协议支持、密钥交换、加密套件、hsts、ocsp stapling、http/2 等。
禁用老旧协议与弱密码套件
SSL Labs 对 TLS 1.0/1.1、SSLv2/v3 及 RC4、MD5、SHA1 相关套件零容忍。必须显式关闭:
- 在虚拟主机 SSL 配置块(如
/etc/apache2/sites-available/yourdomain-le-ssl.conf)中添加:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305 SSLHonorCipherOrder on
注意:SSLHonorCipherOrder on 强制服务端优先选择高安全性套件,避免客户端降级协商。
启用并正确配置 HSTS 和 OCSP Stapling
HSTS(HTTP Strict Transport Security)防止协议降级攻击;OCSP Stapling 缩短 TLS 握手时间并提升证书状态验证可靠性——两者均为 A+ 必备项。
- HSTS 添加到 HTTPS 虚拟主机内:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
确保已启用 mod_headers 模块。若计划提交至 HSTS Preload List,需加上 preload 并通过 hstspreload.org 提交。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- OCSP Stapling 需同时开启:
SSLUseStapling on SSLStaplingCache "shmcb:/var/run/ocsp(128000)"
确认证书由支持 OCSP 的 CA 签发(如 Let’s Encrypt、DigiCert),且中间证书完整(可用 openssl s_client -connect example.com:443 -servername example.com -status -tlsextdebug 验证 stapling 是否生效)。
启用 HTTP/2 与会话复用优化
HTTP/2 是 A+ 的隐性要求(虽非直接扣分项,但缺失常导致握手延迟升高、影响整体评级稳定性);而会话缓存可减少重复 TLS 握手开销。
- 启用 HTTP/2(需 Apache ≥ 2.4.17 + OpenSSL ≥ 1.0.2):
Protocols h2 http/1.1
- 启用 SSL 会话缓存(推荐 shmcb 方式):
SSLSessionCache "shmcb:/var/run/apache2/ssl_scache(512000)" SSLSessionCacheTimeout 300
重启前确保 /var/run/apache2/ 存在且 Apache 有写入权限,并加载 mod_ssl 和 mod_socache_shmcb。
验证与持续维护要点
配置完成后务必测试,而非仅依赖重启成功:
- 用 SSL Labs Test 全面扫描,关注 “Key Exchange”、“Cipher Strength”、“Protocol Support” 各子项是否全绿
- 检查证书链完整性:
curl -I https://yourdomain.com确认返回200且无证书警告;用openssl s_client -connect yourdomain.com:443 -showcerts查看是否包含全部中间证书 - 确认重定向逻辑:HTTP 请求应 301 跳转至 HTTPS,且不出现混合内容(Mixed Content)告警
- Let’s Encrypt 用户注意自动续期后是否重新加载配置(建议搭配
systemdreload 或apache2ctl graceful)










