何时调用SSL_set_verify与SSL_CTX_set_verify

When to call SSL_set_verify vs SSL_CTX_set_verify

本文关键字:verify set SSL CTX 何时 调用      更新时间:2023-10-16

根据OpenSSL文档,SSL_set_verifySSL_CTX_set_verify似乎做了几乎相同的事情。

使用Boost库,我无法判断是否/何时需要调用ssl::stream::set_verify_callbackssl::context::set_verify_callback,因为流无论如何都使用上下文。这些函数分别在后台调用SSL_set_verifySSL_CTX_set_verify

何时需要为上下文而不是SSL流设置验证回调?

每个连接都可以有自己的ssl对象,而它们都是从一个ctx对象继承的。你可以在这里看到区别。通常倾向于创建一个ctx,并将其用于所有TLS连接。在该模型中,您可以使用这两个选项全局控制验证选项或在单个连接级别控制验证选项。

因此,不同之处在于SSL_CTX_set_verify为从给定ctx派生的所有ssl对象设置验证模式,而SSL_set_verify((只影响它调用的ssl对象

通常您的代码中有一个通用的验证函数,而不是一个特定于单个SSL会话的验证函数。而且您经常在多个SSL会话之间共享相同的SSL上下文。因此,在大多数情况下,只在上下文上设置验证回调更有意义。