首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL_CTX_set_cert_verify_callback对SSL_CTX_set_verify

SSL_CTX_set_cert_verify_callback对SSL_CTX_set_verify
EN

Stack Overflow用户
提问于 2010-04-28 12:11:19
回答 2查看 9.5K关注 0票数 10

有人能告诉我SSL_CTX_set_cert_verify_callback和SSL_CTX_set_verify有什么区别吗?来自OpenSSL文档:

SSL_CTX_set_cert_verify_callback()为ctx设置验证回调函数。从ctx创建的SSL对象继承在调用SSL_new(3)时有效的设置。

以及:

SSL_CTX_set_verify()将ctx的验证标志设置为模式,并指定要使用的verify_callback函数。如果不指定回调函数,则可以将空指针用于verify_callback。

因此,我试图了解每个回调(从客户端)发送给哪个回调。

谢谢专家。

EN

回答 2

Stack Overflow用户

发布于 2010-04-28 12:27:14

SSL_CTX_set_cert_verify_callback()意味着要指定一个函数来执行整个验证过程(依次遍历证书链验证每个证书)。你可能不想这样做,根据下面的警告

另一方面,SSL_CTX_set_verify()指定在默认验证器检查每个证书时调用的函数,该函数的preverify_ok设置为0或1,以指示所述证书的验证是否有效。

来自SSL_CTX_set_cert_verify_callback()的文档

警告

不要将此函数中描述的验证回调与在验证过程中调用的verify_callback函数混合使用。后者是使用SSL_CTX_set_verify(3)函数族来设置的。

提供完整的验证过程,包括证书、目的、设置等,是一项复杂的任务。内置过程非常强大,在大多数情况下,使用verify_callback函数修改其行为就足够了。

票数 10
EN

Stack Overflow用户

发布于 2010-04-28 12:43:22

SSL_CTX_set_cert_verify_callback()更改默认的证书验证函数。你也许不应该这么做。这是相当复杂的,您需要检查每个证书的签名,验证链,可能检查CRL。它是SSL中最复杂的部分。

SSL_CTX_set_verify()用于设置SSL模式。如果模式为SSL_VERIFY_PEER (双向SSL),则还应在此函数中设置回调以进一步验证客户端证书(根据白名单等检查CN )。对于其他模式,不使用此CB。因为您说您处于客户端模式,所以您可能不需要担心这个电话。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2729254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档