Python 套接字客户端 SSL 连接
Python Socket Client SSL Connection
我已实现以下连接到远程服务器:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(10)
context = SSLContext(ssl.PROTOCOL_TLSv1_2)
context.verify_mode = ssl.CERT_NONE
sslSocket = context.wrap_socket(s, server_hostname=hostname)
sslSocket.connect((hostname, port))
我遇到一个错误:
[SSL: WRONG_SSL_VERSION] wrong ssl version (_ssl.c:2820)
当我通过命令行通过 openssl 连接时,这是我从服务器获得的响应:
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
我在获取 SSL 版本错误的调用中遗漏了什么?
您必须更改协议版本:
'ssl.PROTOCOL_TLSv1_2'
另一个如:ssl.PROTOCOL_SSLV3
我不确定语法。在文档中搜索它。
这个:
PROTOCOL_SSLv23
我已实现以下连接到远程服务器:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(10)
context = SSLContext(ssl.PROTOCOL_TLSv1_2)
context.verify_mode = ssl.CERT_NONE
sslSocket = context.wrap_socket(s, server_hostname=hostname)
sslSocket.connect((hostname, port))
我遇到一个错误:
[SSL: WRONG_SSL_VERSION] wrong ssl version (_ssl.c:2820)
当我通过命令行通过 openssl 连接时,这是我从服务器获得的响应:
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
我在获取 SSL 版本错误的调用中遗漏了什么?
您必须更改协议版本: 'ssl.PROTOCOL_TLSv1_2' 另一个如:ssl.PROTOCOL_SSLV3 我不确定语法。在文档中搜索它。 这个: PROTOCOL_SSLv23