I've been trying with no success to g开发者_如何学运维et my pyOpenSSL client to use TLS/SSL session resume when making several connections sucessively (it's sending http requests) to a Tomcat application server. I'm pretty sure everything is fine on the server end since I have several other clients making similar connections and they are all able to do session resume.
For the first connection I create the ssl context. Then I just reuse the context for subsequent connections
# 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()
This article shows how to do it in openssl, maybe it applies to pyOpenSSL. Also, the article is almost ten years old now, so there may be a simpler way by now.
pyOpenSSl currently doesn't support session resumption
精彩评论