OpenSSL中的异步客户端证书验证

OpenSSL中的异步客户端证书验证,openssl,Openssl,我需要实现以下高级逻辑: 客户端设置SNI()以显示它要连接到哪个“服务器” 服务器将请求客户端证书身份验证 客户端将发送一个客户端证书(它只有一个将发送的证书) 我们当时在本地没有CA证书(这是最重要的信息),我们需要去异步获取一个 我们应该在检索CA证书时验证客户端证书 我知道如何在同步模式下实现所有这些功能(当我在本地拥有CA证书或在获得证书之前阻止所有内容),使用:SSL\u CTX\u set\u tlsext\u servername\u callback,SSL\u CTX\u

我需要实现以下高级逻辑:

  • 客户端设置SNI()以显示它要连接到哪个“服务器”
  • 服务器将请求客户端证书身份验证
  • 客户端将发送一个客户端证书(它只有一个将发送的证书)
  • 我们当时在本地没有CA证书(这是最重要的信息),我们需要去异步获取一个
  • 我们应该在检索CA证书时验证客户端证书
我知道如何在同步模式下实现所有这些功能(当我在本地拥有CA证书或在获得证书之前阻止所有内容),使用:
SSL\u CTX\u set\u tlsext\u servername\u callback
SSL\u CTX\u set\u verify
SSL\u CTX\u load\u verify\u locations


然而,我正试图弄清楚在异步情况下该怎么做。我如何让OpenSSL知道我们还没有准备好验证客户端证书,它需要等待,直到我们获得适当的CA。

您可以使用函数
SSL\u CTX\u set\u cert\u cb
设置回调,如果您返回回调-1,则握手会暂停

握手未终止,也未完成


当您准备好继续握手时,您可以再次调用
SSL\u accept

您可以使用函数
SSL\u CTX\u set\u cert\u cb
设置回调,如果您返回回调-1,则握手会暂停

握手未终止,也未完成

当您准备好继续握手时,可以再次调用
SSL\u accept