什么是 OCSP Stapling(OCSP 装订)?如何在服务器中配置以加速 SSL 握手?

在配置好 HTTPS 和 HTTP/2 后,许多对性能有极致追求的站长还会关注一个隐藏的性能杀手——OCSP 查询。默认情况下,当用户访问您的网站时,浏览器为了确认您的 SSL 证书没有被吊销,会额外向证书颁发机构(CA)的 OCSP 服务器发起一次网络请求。如果 CA 服务器响应慢或网络拥堵,就会直接拖慢网页的加载速度,甚至引发隐私泄露(CA 会知道哪些用户正在访问您的网站)。

OCSP Stapling(OCSP 装订)的破局之道
OCSP Stapling(正式名称为 TLS 证书状态查询扩展)完美解决了上述痛点。它的核心原理是:由您的 Web 服务器代替客户端,提前向 CA 查询证书状态,并将带有 CA 签名的响应结果缓存在本地。当用户发起 TLS 握手时,服务器直接将这份缓存的 OCSP 响应“装订”(Stapling)在证书中一并发送给客户端。这样一来,客户端只需验证响应的有效性,彻底免去了与 CA 服务器的网络交互,通常能为 TLS 握手节省 300ms 到 2s 的等待时间,对移动网络和高延迟环境下的体验提升尤为显著。

在 Nginx 中配置 OCSP Stapling
要在 Nginx 中启用该功能,只需在 server 或 http 块中添加以下指令:
ssl_stapling on; # 开启 OCSP Stapling
ssl_stapling_verify on; # 开启对 OCSP 响应的验证
ssl_trusted_certificate /path/to/fullchain.pem; # 指定包含完整证书链(含根证书)的文件路径
resolver 8.8.8.8 114.114.114.114 valid=60s; # 指定 DNS 解析器,用于解析 CA 的 OCSP 服务器地址
resolver_timeout 2s; # 设置 DNS 解析超时时间

配置完成后,执行 nginx -t 检查语法并重载 Nginx 即可生效。

在 Apache 中配置 OCSP Stapling
Apache 的配置同样简洁,但需要确保 mod_ssl 和 mod_socache_shmcb 模块已加载。在 配置段中添加:
SSLUseStapling on
SSLStaplingCache "shmcb:/var/cache/apache2/ocsp(128000)"
SSLStaplingResponderTimeout 5

这里通过 shmcb 指定了共享内存缓存路径及大小。请务必确保 /var/cache/apache2/ocsp 目录存在,且 Apache 运行用户(如 www-data)拥有读写权限。

验证配置是否成功
配置完成后,可以通过 OpenSSL 命令行进行精准测试:
openssl s_client -connect yourdomain.com:443 -status -servername yourdomain.com 2>/dev/null | grep -i "OCSP response"

如果输出结果中包含 OCSP Response Status: successful,则说明 OCSP Stapling 已成功运行。您也可以使用业界权威的 SSL Labs 在线测试工具,在结果页中确认 “OCSP stapling” 状态是否显示为 “Yes”。

注意事项:首次请求时,由于服务器本地缓存为空,OCSP 响应可能不会立即返回,需等待服务器后台完成首次查询并缓存后,后续请求才会生效。此外,更换证书后,建议手动清空缓存目录或重启 Web 服务器,以确保新证书的 OCSP 响应被正确获取。

标签: none

评论已关闭

SSL证书 SSL证书购买 SSL证书申请 SSL证书价格 泛域名证书 通配符证书 通配符SSL证书 https证书 便宜SSL证书 便宜证书 SSL证书多少钱 申请SSL 域名SSL sectigo证书