首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyOpenSSL:连接错误的协议版本

pyOpenSSL:连接错误的协议版本
EN

Stack Overflow用户
提问于 2018-11-25 23:37:04
回答 1查看 626关注 0票数 1

环境:

Python 3.7 (Windows上的Anaconda 5.3.1 )

pyOpenSSL 18.0

SSL.SSLEAY_VERSION: OpenSSL 1.0.2p 2018年8月14日

我有一个套接字,它用于一些未加密的通信,然后由pyOpenSSL包装:

代码语言:javascript
复制
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显示了以下内容:

代码语言:javascript
复制
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)

我得到了:

代码语言:javascript
复制
Error: [('SSL routines', 'SSL3_GET_RECORD', 'wrong version number')]

我认为这个错误与使用TLS 1.0有关,但我不知道它是从哪里来的?如果我检查conn.get_protocol_version_name(),它会显示TLSv1.2

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-01 23:31:54

经过进一步的调查,我将亲自回答这个问题。TLS 1.0 (0x0301)在ClientHello消息的记录层是OpenSSL中的期望的

我得到了wrong version number,因为请求在服务器端没有正确路由,所以响应不是有效的ServerHello消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53473094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档