Openssl SSL\u CTX\u集合\u客户端\u证书\u cb及证书链

Openssl SSL\u CTX\u集合\u客户端\u证书\u cb及证书链,openssl,Openssl,OpenSSL文档说:客户端证书不能返回完整的证书链,它只能返回一个客户端证书 在我的例子中,我想返回/设置证书链,但不知道它是如何实现的。如果有任何示例,我们将不胜感激???在OpenSSL命令的手册页中,如您在问题中所说,client\u cert\u cb()无法返回完整的证书链,但它也说明了该问题的解决方法: 错误 客户端\u cert\u cb()无法返回完整的证书链,因此 只能返回一个客户端证书。如果链条只有一个长度 在2中,根CA证书可以根据TLS省略 标准,因此可以将符合标准的答

OpenSSL文档说:客户端证书不能返回完整的证书链,它只能返回一个客户端证书


在我的例子中,我想返回/设置证书链,但不知道它是如何实现的。如果有任何示例,我们将不胜感激???

在OpenSSL命令的手册页中,如您在问题中所说,
client\u cert\u cb()无法返回完整的证书链
,但它也说明了该问题的解决方法:

错误

客户端\u cert\u cb()无法返回完整的证书链,因此 只能返回一个客户端证书。如果链条只有一个长度 在2中,根CA证书可以根据TLS省略 标准,因此可以将符合标准的答案发送给 服务器。对于较长的链,客户端必须发送完整的链 (具有省去根CA证书的选项)。这只能 通过
将中间CA证书添加到SSL\u CTX对象的受信任证书存储中(导致必须添加可能不受信任的CA证书),或使用SSL\u CTX\u add\u extra\u chain\u cert函数添加链证书来完成,该函数仅适用于
SSL_CTX对象作为一个整体,因此可能只能应用
对于一个客户端证书,使用回调的概念
函数(允许从多个证书中进行选择)有问题

这适用于你的情况吗


编辑


您可以使用函数添加链证书。请注意,正如报价中所述,您不必发送根CA证书。

如何将中间CA证书添加到SSL\u CTX对象的受信任证书存储中?根CA设置在哪里?@user3027786我已经更新了关于您评论的答案。如果您能提供一些您尝试过但失败的方法,以便我们能够轻松地发现代码中的错误,这将非常有帮助。