Среда:
Python 3.7 (Anaconda 5.3.1 в Windows)
pyOpenSSL 18.0
SSL.SSLEAY_VERSION: OpenSSL 1.0.2p 14 августа 2018
У меня есть сокет, который используется для некоторой незашифрованной связи, а затем оборачивается pyOpenSSL:
sock = socket.socket()
sock.connect((address, port))
sock.send(msg)
context = SSL.Context(SSL.TLSv1_2_METHOD)
conn = SSL.Connection(context, sock)
conn.set_connect_state()
conn.do_handshake()
Я ожидаю, что протокол будет TLS 1.2, который указан для объекта контекста, но Wireshark показывает следующее:
Secure Sockets Layer
TLSv1 Record Layer: Handshake Protocol: Client Hello
Content Type: Handshake (22)
Version: TLS 1.0 (0x0301)
Length: 302
Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 298
Version: TLS 1.2 (0x0303)
И я получаю:
Error: [('SSL routines', 'SSL3_GET_RECORD', 'wrong version number')]
Полагаю, ошибка связана с тем, что используется TLS 1.0, но я не понимаю, откуда она взялась?Если я проверю conn.get_protocol_version_name()
, он покажет TLSv1.2
Есть идеи?