nginx: ssl_stapling_verify: 到底验证了什么?

Bra*_*bil 13 nginx ocsp

ssl_stapling_verify指令究竟是做什么的?它是否检查答案的签名是否正确?nginx 官方文档对此的解释非常模糊:

https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_stapling_verify

启用或禁用服务器对 OCSP 响应的验证。

为了验证工作,服务器证书颁发者的证书、根证书和所有中间证书应该使用 ssl_trusted_certificate 指令配置为受信任。

小智 5

我在 Nginx 源代码中找到了。文件ngx_event_openssl_stapling.c#L660

OCSP_basic_verify(basic, chain, store,staple->verify ? OCSP_TRUSTOTHER :OCSP_NOVERIFY
Run Code Online (Sandbox Code Playgroud) 如果你配置 `ssl_stapling_verify` 值是 on,那么 `staple->verify` 将是 true,接下来函数 `OCSP_basic_verify` 将使用 `OCSP_TRUSTOTHER` 参数来验证。

然后,我在libaray 中找到了OCSP_basic_verify函数openssl,它说:

然后,如果标志包含 OCSP_NOVERIFY 或者签名者证书在 certs 中找到并且标志包含 OCSP_TRUSTOTHER,则该函数已经返回成功。

更多信息在这里:https : //meto.cc/article/what-exactly-did-ssl_stapling_verify-verify