3

目前,我有一个实现,我在verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx)函数中为每个中间和最终实体证书发送一个 OCSP 请求。使用verify_callback函数设置SSL_CTX_set_verify()函数。

现在,我想将 OCSP 装订添加到我的实现中。我在使用 OCSP 装订的客户端程序中看到了有关如何包含 OCSP 装订的帖子OpenSSL 证书吊销检查。

添加上述 OCSP 回调的问题是第verify_callback()一个在 OCSP 装订回调函数之前被调用。

我的问题是我如何才能同时拥有它们,如果服务器没有 OCSP 装订响应,那么客户端将自己发送 OCSP 请求。

有没有办法在我们达到功能之前检查是否支持 OCSP 装订verify_callback()

4

1 回答 1

0

我不确定这是否有意义。OCSP 装订的要点是响应附加到初始 TLS 握手,参见。维基百科。因此,TLS 握手的有效性必须在评估其内容之前建立。因此,OpenSSL 首先触发verify_callback()验证握手本身,然后(如果发现握手有效)触发 OCSP 回调函数,让您验证握手中包含的附加数据。

否则,如果 TLS 握手失败,为什么还需要提交任何传统的 OCSP 请求呢?

如果您坚持手动向第三方提交 OCSP 请求,那么这需要在 TLS 握手完成后完成(可能在您在该连接上发送任何进一步的数据或处理您收到的任何数据之前)。或者在您尝试连接到远程服务器之前(当然,前提是您事先知道证书)——此工作流不再需要使用 OCSP 装订。

于 2017-01-11T10:47:52.310 回答