有人能告诉我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。
因此,我试图了解每个回调(从客户端)发送给哪个回调。
谢谢专家。
发布于 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函数修改其行为就足够了。
发布于 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。因为您说您处于客户端模式,所以您可能不需要担心这个电话。
https://stackoverflow.com/questions/2729254
复制相似问题