当我使用 SSL_CTX_set_cert_verify_callback 注册回调时,我得到了回调。 ctx 包含证书,但我似乎无法找到客户端发送的整个证书链。有谁知道 ctx 中的哪个字段会有它?或者我如何检索它以便我可以进行完整的验证。
SSL_CTX_set_cert_verify_callback(ctx, ssl_app_verify_callback, NULL);
谢谢...
最佳答案
客户端证书的验证回调与服务器证书的回调工作方式相同,即
- OpenSSL 将根据客户端发送的内容和服务器知道的本地 CA 路径构建链。
- 对于链的每个部分,将调用验证回调。这意味着即使客户端没有发送它们,也会为作为信任链一部分的本地证书调用回调。回调不会调用不属于链的证书,即使客户端已发送它们也是如此。
客户端是否会发送链证书取决于客户端。但是标准中没有任何内容使这成为不可能并且openssl s_client -cert leaf.pem -CAfile chain.pem ...
可用于使客户端同时发送叶证书和链证书。
关于c - SSL_CTX_set_cert_verify_callback 获取链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095878/