根据OpenSSL文档的说法,SSL_set_verify和SSL_CTX_set_verify似乎都在做同样的事情。
使用Boost库,我无法判断是否/何时需要调用ssl::stream::set_verify_callback和ssl::context::set_verify_callback,因为流无论如何都使用上下文。函数分别调用SSL_set_verify和SSL_CTX_set_verify。
什么时候需要为上下文而不是SSL流设置验证回调?
发布于 2016-10-21 02:04:49
每个连接都可以有自己的ssl对象,而它们都是从一个ctx对象继承的。你可以看到这里的区别。一个人通常倾向于创建一个ctx,并对所有的TLS连接使用相同的。在此模型中,您可以全局控制验证选项,也可以在单独的连接级别上控制这两个选项。
因此,区别在于SSL_CTX_set_verify为从给定ctx派生的所有ssl对象设置验证模式,而SSL_set_verify()只影响调用的ssl对象。
发布于 2016-10-21 02:05:21
通常,您的代码中有一个通用的验证函数,而不是一个特定于单个SSL会话的验证函数。而且通常在多个SSL会话之间共享相同的SSL上下文。因此,在大多数情况下,只在上下文上设置验证回调更有意义。
https://stackoverflow.com/questions/40165088
复制相似问题