Apache 不支持 SSLCARevocationCheck 指令,该指令不存在于官方 mod_ssl 模块中;实际仅支持两种吊销验证方式:一是通过 SSLCARevocationPath 配合 c_rehash 使用 CRL(仅限客户端证书),二是启用 OCSP Stapling(SSLUseStapling on)验证服务器证书吊销状态。

Apache 没有 SSLCARevocationCheck 这个指令,该配置项并不存在于官方 mod_ssl 模块中。
这是一个常见误传,源于对 OpenSSL 行为、Apache 配置语法以及证书吊销机制(CRL/OCSP)的混淆。Apache 本身不提供直接启用“基于 OCSP 分发点的实时吊销查询”的配置指令——它不主动发起 OCSP 请求,也不解析证书中的 AIA(Authority Information Access)扩展去自动联系 OCSP 响应器。
✅ Apache 实际支持的吊销验证方式只有两种,且都需手动配置
1. CRL(证书吊销列表)方式:仅限客户端证书校验
- 使用
SSLCARevocationPath(不是File),配合c_rehash工具预处理目录 - 必须搭配
SSLVerifyClient require和SSLCACertificateFile才生效 - 不适用于服务器证书(即你对外提供的 HTTPS 网站证书)的吊销检查
- CRL 已被主流标准弃用,延迟高、体积大、更新不及时
2. OCSP Stapling:用于验证 服务器自身证书 是否被吊销
- 启用
SSLUseStapling on - 配置共享内存缓存:
SSLStaplingCache shmcb:/tmp/stapling_cache(128000) - 要求证书链完整(含中间证书),且证书中必须包含有效的 OCSP 响应器 URL(可通过
openssl x509 -in cert.pem -text -noout | grep -A1 "OCSP"验证) - Apache 会定期向 OCSP 响应器获取签名响应,并在 TLS 握手时“装订”返回给浏览器
- 浏览器无需自己发起 OCSP 查询,兼顾性能与隐私
注意:OCSP Stapling 是 服务端主动缓存并提供 吊销状态,不是“实时查询”。所谓“实时”,是指响应有效期通常为几小时到几天,由 CA 控制。
❌ 为什么不能像浏览器那样自动走 AIA + OCSP?
- OpenSSL(Apache 底层依赖)传统版本(1.0.x / 1.1.x)默认不启用 OCSP 自动验证逻辑
- Apache 未封装该能力为配置项;没有
SSLCARevocationCheck,也没有SSLOCSPEnable(那是 IBM HTTP Server 的指令) - 即使证书含
OCSP URI,Apache 不会自动解析并请求——它只负责把已缓存的 OCSP 响应“staple”出去
✅ 正确做法:用 OCSP Stapling 替代“实时查询”
# 在全局配置中(如 mods-enabled/ssl.conf) SSLStaplingCache shmcb:/var/run/apache2/stapling_cache(128000) # 在虚拟主机中 <virtualhost> SSLEngine on SSLCertificateFile /path/to/fullchain.pem # 含服务器证书 + 中间证书 SSLCertificateKeyFile /path/to/privkey.pem SSLUseStapling on SSLStaplingResponderTimeout 5 SSLStaplingReturnResponderErrors off </virtualhost>
✅ 验证是否生效:
openssl s_client -connect example.com:443 -status -servername example.com 2>/dev/null | grep -i "ocsp response"
看到 OCSP Response Status: successful (0x0) 即表示成功。
⚠️ 补充提醒
- 若你真正想验证的是 客户端证书是否被吊销(例如双向 TLS 场景),Apache 不原生支持 OCSP 校验客户端证书
- 可行替代方案是:在应用层(如 PHP/Python 后端)调用 OpenSSL 命令或库,手动执行 OCSP 查询
- 或改用支持 OCSP 客户端校验的网关(如 Nginx +
ssl_stapling_verify on配合ssl_client_certificate,但注意:Nginx 的ssl_stapling也只用于服务端证书)
不复杂但容易忽略











