是否可以使双向 SSL 异步?

Is it possible to make two-way SSL asynchronous?

是否可以使双向 SSL 异步?

客户端验证服务器ssl证书无误后,即可成功建立连接,客户端即可开始发布消息。这个过程就像单向 SSL。

然后服务器会异步检查客户端ssl证书。并且在检查时间内,客户端可以正常发布消息,服务端可以处理这些消息并响应ACK。一旦服务器异步发现客户端ssl证书有问题,那么服务器就会终止与客户端的连接。

这样的要求能实现吗?如果可以,我应该怎么做?

感谢您的帮助!

服务器可以在初始 TLS 握手中请求客户端证书,但不验证握手中的客户端证书,即它在 TLS 握手之外进行验证。例如,此方法在实践中用于成功建立 TLS 连接,仅向客户端发送有用的错误消息,而不是仅仅关闭连接。

另一种方法是在不请求客户端证书的情况下进行初始 TLS 握手,但稍后通过执行 TLS 重新协商来请求它(或 TLS 1.3 中的 post-握手,请参阅 dave_thompson_085 的评论)。例如,这仅用于为特定资源请求客户端证书 - 但为了知道客户端请求的是哪个资源,需要首先读取来自客户端的应用程序数据。