nginx:ssl_stapling_verify:到底正在验证什么?

nginx:ssl_stapling_verify:到底正在验证什么?

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

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

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

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

答案1

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

OCSP_basic_verify(basic, chain, store,staple->verify ? OCSP_TRUSTOTHER :OCSP_NOVERIFY
如果配置`ssl_stapling_verify`值为on,则`staple->verify`将为真,接下来函数`OCSP_basic_verify`将使用`OCSP_TRUSTOTHER`参数进行验证。

然后,我发现OCSP_basic_verify库中的函数openssl,它说:

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

更多详情请参见此处:https://meto.cc/article/what-exactly-did-ssl_stapling_verify-verify

答案2

维基百科说, “OCSP 装订,正式名称为 TLS 证书状态请求扩展,是用于检查 X.509 数字证书撤销状态的在线证书状态协议 (OCSP) 的替代方法。它允许证书出具者通过以下方式承担提供 OCSP 响应所涉及的资源成本:将 CA 签名的带时间戳的 OCSP 响应附加(“装订”)到初始 TLS 握手中,从而无需客户端联系 CA“。

强调已添加。

该指令可打开或关闭 OCSP 装订的“替代方法”。默认情况下,未启用 OCSP 装订。您可以使用以下命令启用它

ssl_stapling_verify   on;

相关内容