SSL握手错误:会话ID上下文未初始化

问题描述 投票:0回答:2

我正在编写使用boost :: asio的服务器应用程序,以及通过与boost :: asio集成的libssl。当有传入连接时,第一次握手成功,但在连接断开并且客户端再次尝试连接之后,握手失败并显示错误:

会话ID上下文未初始化

Here在初始化SSL上下文时使用SSL_OP_NO_TICKET选项提出了解决方案。我使用它的方式如下:

m_sslContext.set_options(SSL_OP_NO_TICKET);

在一开始这解决了问题,但现在尽管仍然设置了选项,但错误再次出现。有没有人知道这个问题可以做些什么呢?

c++ ssl boost openssl boost-asio
2个回答
0
投票

我发现当问题出现时,我仍然有一个旧的连接到同一个远程端点,尝试再次连接。当我正确地删除旧连接时,问题就消失了。


-1
投票

启用客户端证书验证时,我得到了完全相同的错误。解决方案是为每个连接创建单独的ssl_context,与boost.asio示例不同。有一点需要注意,在我的情况下,SSL流关闭永远不会完成,它只会无限期地挂起。也许,因为客户端没有正确实现它。

© www.soinside.com 2019 - 2024. All rights reserved.