让 pyOpenSSL 客户端使用 SSL 会话恢复

Posted

技术标签:

【中文标题】让 pyOpenSSL 客户端使用 SSL 会话恢复【英文标题】:Getting a pyOpenSSL client to use SSL session resume 【发布时间】:2011-01-19 23:05:34 【问题描述】:

我一直在尝试让我的 pyOpenSSL 客户端在连续建立多个连接(它正在发送 http 请求)到 Tomcat 应用程序服务器时使用 TLS/SSL 会话恢复,但没有成功。我很确定服务器端的一切都很好,因为我有几个其他客户端进行了类似的连接,并且他们都能够进行会话恢复。

对于第一个连接,我创建了 ssl 上下文。然后我只是将上下文重用于后续连接

# Just do this for the first and then reuse the context for subsequent connections.
ssl_context = SSL.Context(SSL.SSLv23_METHOD)
ssl_context.set_options(SSL.OP_NO_SSLv2)


# Do this for every connection
sock = socket.create_connection((self.host, self.port), self.timeout)
sslconn = SSL.Connection(ssl_context, sock)
sslconn.set_connect_state()
sslconn.do_handshake()

【问题讨论】:

【参考方案1】:

This 文章展示了如何在 openssl 中进行操作,也许它适用于 pyOpenSSL。另外,这篇文章现在已经快十年了,所以现在可能有一个更简单的方法。

【讨论】:

【参考方案2】:

pyOpenSSl 目前不支持会话恢复

【讨论】:

您能否为您的陈述提供参考?您指的是哪个版本号?也许将来会添加此功能...

以上是关于让 pyOpenSSL 客户端使用 SSL 会话恢复的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 SSL 协议以支持 TLS?

在 C 客户端/服务器应用程序上重用 SSL 会话

对于 websocket 服务器,使用 SSL 会话缓存是一个坏主意吗?

使用cherrypy(python 2)禁用弱密码

如何在 Android 上进行 SSL 会话恢复

openssl客户端编程:一个不起眼的函数导致的SSL会话失败问题