apache中没有sslcarevocationcheck指令,它是混淆产物;ocsp实时校验由openssl自动完成,apache仅通过sslusestapling、sslcertificatechainfile和sslstaplingcache三个配置项间接支持ocsp stapling。

必须启用 OCSP Stapling
OCSP 实时状态校验在 Apache 中不是客户端发起的实时查询,而是由服务器预先向 CA 的 OCSP 响应器请求、验证并缓存结果,在 TLS 握手时“粘贴”给客户端。
- SSLUseStapling on:启用 stapling 功能(必需)
- SSLStaplingCache "shmcb:/var/run/apache2/stapling-cache(128000)":指定共享内存缓存路径,需确保目录可写、大小足够;否则每次握手都重新查 OCSP,极易超时
- SSLCertificateChainFile /path/to/fullchain.pem:必须包含完整中间证书链(不含根证书),否则 OpenSSL 找不到用于验证 OCSP 响应签名的公钥,stapling 失效
OCSP 响应验证由 OpenSSL 自动完成,无法关闭
只要 stapling 启用且链完整,OpenSSL 就会自动用 OCSP 响应签名证书(通常是中间 CA 的专用 OCSP 签名证书)验证响应有效性:
- 签名无效、过期、算法不被信任 → 响应被丢弃,
openssl s_client -connect example.com:443 -status显示OCSP response: no response sent - 签名有效但 OCSP 响应证书不在信任链中(即未被
SSLCACertificateFile覆盖)→ 验证失败,stapling 不生效 - 你无法通过 Apache 配置开关“是否验证 OCSP 响应”,这是 OpenSSL 底层硬编码行为
注意 TLS 1.3 客户端兼容性
Apache ≥ 2.4.37 要求显式启用缓冲支持,否则现代客户端(尤其是 TLS 1.3)不会触发 stapling:
- SSLUseStaplingWhenClientProvidesBuffer on:必须添加,否则 stapling 在多数新客户端下不工作
不要尝试配置 SSLCARevocationCheck 或 SSLCARevocationFile
这两个指令与 OCSP 实时校验无关:
-
SSLCARevocationCheck仅在双向认证(SSLVerifyClient require)场景下生效,用于检查客户端证书吊销状态,且值只能是none、chain、leaf,不控制服务端证书 OCSP -
SSLCARevocationFile在标准 Apache 中不存在;CRL 文件应通过SSLCARevocationPath+c_rehash使用,但 CRL 已被官方弃用,不推荐用于 OCSP 场景











