SSL handshake error: session id context uninitialized
SSL handshake error: session id context uninitialized
我正在编写服务器应用程序,它通过与 boost 的集成使用 boost::asio 和 libssl ::asio。当有传入连接时,第一次握手成功,但在连接断开后客户端再次尝试连接时,握手失败并出现错误:
session id context uninitialized
Here 提出了在初始化 SSL 上下文时使用 SSL_OP_NO_TICKET 选项的解决方案。我按以下方式使用它:
m_sslContext.set_options(SSL_OP_NO_TICKET);
一开始这解决了问题,但现在尽管选项仍然设置错误再次出现。有没有人知道还有什么办法可以解决这个问题?
我发现当问题出现时,我仍然有一个到同一个远程端点的旧连接,它试图再次连接。当我正确地断开旧连接时,问题就消失了。
我在启用客户端证书验证时遇到了完全相同的错误。
解决方案是为每个连接创建单独的 ssl_context,这与 boost.asio 示例不同。
需要注意的一件事是,在我的案例中,SSL 流关闭从未完成,它只会无限期地挂起。可能是因为客户端没有正确实现。
我正在编写服务器应用程序,它通过与 boost 的集成使用 boost::asio 和 libssl ::asio。当有传入连接时,第一次握手成功,但在连接断开后客户端再次尝试连接时,握手失败并出现错误:
session id context uninitialized
Here 提出了在初始化 SSL 上下文时使用 SSL_OP_NO_TICKET 选项的解决方案。我按以下方式使用它:
m_sslContext.set_options(SSL_OP_NO_TICKET);
一开始这解决了问题,但现在尽管选项仍然设置错误再次出现。有没有人知道还有什么办法可以解决这个问题?
我发现当问题出现时,我仍然有一个到同一个远程端点的旧连接,它试图再次连接。当我正确地断开旧连接时,问题就消失了。
我在启用客户端证书验证时遇到了完全相同的错误。 解决方案是为每个连接创建单独的 ssl_context,这与 boost.asio 示例不同。 需要注意的一件事是,在我的案例中,SSL 流关闭从未完成,它只会无限期地挂起。可能是因为客户端没有正确实现。